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:/$ 
Sergiy Belozorov
źródło
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.

Hamish Downer
źródło
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.

Ricket
źródło
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.

Carlos Trisotto
źródł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

źródło
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
Alain Pannetier
źródło
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.

Bengt
źródło
-1: patrz komentarz pkaeding .
Blacklight Shining
-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
użytkownik3113604
źródło
-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ę :)

EFernandes
źródło
-3

Zaloguj się, używając najpierw:

$ su

Następnie przejdź do:

$ sudo apt-get update

lub cokolwiek normalnego

Alastair
źródło
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