Jak poprawnie skonfigurować plik sudoers na Debian Wheezy?

10

Widziałem wiele postów na blogu, które mówią, że wystarczy

aptitude install sudo
su root
adduser USERNAME sudo

Ale to tylko chroni aptitude, innymi słowy:

  • aptitude install sendmailpoprosi o hasło, musisz być sudouruchomionyaptitude

  • apt-get install sendmailnie poprosi o hasło, nie sudopotrzebujesz żadnych uprawnień

  • Jeśli edytujesz pliki chronione, tak jak pliki w etcnim nie pytają o hasło, nie sudopotrzebujesz żadnych uprawnień

  • Możesz uruchamiać i zatrzymywać usługi, takie jak: apachenie prosi o hasło, nie sudopotrzebujesz żadnych uprawnień

Jak to naprawić? To jest mój plik sudoers:

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

To jest wynik sudo -l:

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL : ALL) ALL
Lynob
źródło
3
Następnie su rootjesteś zalogowany jako rootużytkownik, więc masz pełny dostęp do wszystkiego. Aby powrócić do regularnego używania, który musi używać sudodo operacji uprzywilejowanych, wyloguj się z powłoki działającej jako root.
depquid
Jestem nowy w Linuksie, ale wiki Debiana mówi - adduser nazwa użytkownika sudo wiki.debian.org/sudo
AntiCZ

Odpowiedzi:

16

Nie dodałeś żadnej reguły sudo, więc nie możesz używać sudo do niczego.

Polecenie adduser USERNAME sudododaje określonego użytkownika do grupy o nazwie sudo. Grupa o tej nazwie musi istnieć; utwórz go, addgroup sudojeśli nie. Po dodaniu użytkownika do grupy użytkownik musi się wylogować i zalogować ponownie, aby członkostwo w grupie zaczęło obowiązywać.

sudonie jest specjalną nazwą grupy. Jest to konwencja umożliwiająca użytkownikom w grupie wywoływanej sudouruchamianie poleceń jako root za pomocą sudonarzędzia. Wymaga to następującego wiersza w sudoerspliku:

%sudo ALL = (ALL) ALL

Uruchom, visudoaby edytować plik sudoers, nigdy nie edytuj go bezpośrednio.

Nie mam pojęcia, dlaczego uważasz, że „to tylko chroni umiejętności”. W uzdolnieniu nie ma nic szczególnego. Po upoważniony użytkownika do wykonywania poleceń jako root, użytkownik może uruchomić sudo aptitude …lub sudo apt-get …lub sudo service …lub sudoeditedytować pliki, które wymagają uprawnień administratora do edycji. Przebywanie w pliku sudoers nie zmienia bezpośrednio uprawnień użytkownika, ale umożliwia sudouruchamianie poleceń jako root. Polecenia działają jako root tylko po ich uruchomieniu sudo. Niektóre programy mogą to robić automatycznie, szczególnie programy GUI, w których interfejs użytkownika działa bez specjalnych uprawnień i tylko backend działa jako root, ale polecenia wykonywane jako root są zawsze wykonywane przez sudo.

Gilles „SO- przestań być zły”
źródło
On działa sudo -ljako root. Nawet jeśli istnieją przydatne definicje dla użytkowników, nie zostałyby pokazane. Dlatego twoje przypuszczenie „Nie dodałeś żadnej reguły sudo” może być błędne.
Hauke ​​Laging
@HaukeLaging Nie rozumiem twojego komentarza. „Nie dodałeś żadnej reguły sudo” nie jest zgadywaniem: sudoersplik jest pytaniem.
Gilles „SO- przestań być zły”
Byłem prawie przygnębiony, zdając sobie sprawę, że byłem zbyt skoncentrowany na sudo -lwynikach, ale na szczęście ... Wygląda na to, że treść pytania nie może być całym plikiem, ponieważ nie jest spójna z wynikami. Przynajmniej moja sudowersja nie twierdzi, że „root użytkownika może uruchamiać następujące polecenia” sudoersbez definicji polecenia (takiej jak ta w pytaniu).
Hauke ​​Laging
@HaukeLaging Masz rację, sprawdziłem za pomocą wheezy i rzeczywiście sudo -lpowiedziałem „root użytkownika nie może uruchamiać sudo na Darkstar”. A sudogrupa jest w pliku sudoers domyślnie wheezy. Wymagane wpisy mogły zostać przeniesione do pliku w obszarze /etc/sudoers.d. W każdym razie, cokolwiek zawiera plik sudoers, nie zrobiłoby tego, co Fischer zakłada.
Gilles „SO- przestań być zły”
4

Co może się wydarzyć to: sudo jest buforowanie hasła. Tak więc, po poprawnym zakończeniu wdrażania sudo w systemie, musisz wprowadzić hasło dla pierwszego polecenia, a następnie jest ono buforowane przez pewien czas. Jeśli tak się stanie i uruchom sekwencję

sudo aptitude install sendmail
sudo apt-get install sendmail

Następnie musisz podać hasło do pierwszego polecenia, ale nie do drugiego (przynajmniej dopóki nie przekroczysz limitu czasu). Może się wydawać , że chroni tylko pierwsze polecenie, ale nie drugie. Bez dalszych informacji (pełne transkrypcje powłoki) nie ma sposobu, aby powiedzieć ...

Josef
źródło
Tak. Jedno nie wyklucza drugiego. Prawidłowa odpowiedź dobrze wyjaśnia, jak poprawnie skonfigurować sudo, i w tym sensie odpowiada na pytanie. Nie wyjaśnia, dlaczego słowami pytania „to tylko chroni uzdolnienia”. Gilles pisze sam: „Nie mam pojęcia, dlaczego wierzysz, że„ to tylko chroni umiejętności ”. Jak powiedziałem, aby naprawdę zrozumieć to zjawisko, potrzeba więcej informacji. Myślę, że głosowanie negatywne jest nieco trudne, biorąc pod uwagę fakt, że moja odpowiedź jest zgodna z faktami, dotyczy pierwotnego pytania i wypełnia lukę w istniejącej odpowiedzi.
Josef
Dobry pomysł, może to być przyczyną zamieszania Fischera.
Gilles „SO- przestań być zły”
0

Jeśli zastosujesz się do powyższej odpowiedzi, pójdziesz właściwą drogą. Przynajmniej w moim Debianie Jessie zrobiłem miękki link do / usr / bin polecenia w ścieżce / sbin. Na przykład: / sbin / ifup, umieszczam miękki link (ln -s) do / usr / bin tego i mogę go użyć.

Kolejną ważną rzeczą jest ustawienie NOPASSWD w ten sposób:

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
Gonzalo Oviedo
źródło