sudo wciąż pyta mnie o hasło w skorupce ryby

19

sudo w Ubuntu ciągle pyta mnie o hasło do każdego polecenia. Wcześniej musiałem wprowadzić hasło tylko raz, a potem zostanie ono zapamiętane na pewien czas. To się ostatnio zmieniło, prawdopodobnie po „uaktualnieniu” do Natty.

Zrobiłem sudo visudoi ustawiłem Defaults env_reset, timestamp_timeout = 60, próbowałem ponownie uruchomić komputer, ale nadal nie działa. Jak to naprawić?

Po sugestiach poniżej moje /etc/sudoerswygląda następująco:

#
# 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:endolith timestamp_timeout=60

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

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

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

#includedir /etc/sudoers.d

Aktualizacja:

Zaktualizowałem mój VirtualBox i zaczął cierpieć na ten sam problem. Domyślam się, że uruchomiłem bash i spróbowałem sudo w tym, a hasło zostało zapamiętane poprawnie. Tylko wtedy, gdy używam mojej domyślnej ryby z muszli , nie pamięta. Tak było w poprzedniej wersji Ubuntu, ale już nie.

Aktualizacja:

Uaktualniłem do 13.05 i to magicznie znów zaczęło działać. Teraz pyta o moje hasło raz, przestaje pytać na chwilę, a następnie pyta ponownie po pewnym czasie.

endolit
źródło
możliwy duplikat: superuser.com/questions/148665/…
warren
3
@warren: To nie jest duplikat. Powinienem zostać poproszony o podanie hasła, ale po jego wprowadzeniu nie muszę tego robić przez określony czas. W przeszłości zmieniłem ten czas za pomocą visudo, ale to już nie działa.
endolith
Myślę, że musisz użyć wielu instrukcji Defaults, a nie jednej wspólnej oddzielonej.
Stephanie
@Stephanie, jestem pewien, że pojedyncza instrukcja Defaults z wartościami oddzielonymi przecinkami działa dobrze.
Zoredache,
Widzę, że dodałeś taką linię Defaults:endolith timestamp_timeout=60, ale nie należysz do żadnej grupy o nazwie endolith, zgodnie z innym komentarzem tutaj. więc jakiej nazwy użytkownika używasz? Sprawdź za pomocą whoamii dodaj tę nazwę użytkownika zamiast endolithw Defaults:endolith timestamp_timeout=60lubendolith ALL=(ALL) NOPASSWD: ALL
wim

Odpowiedzi:

15

@endolith: Tak, wydaje się, że wpływa tylko na ryby. Miałem ten sam problem, problem jest spowodowany przez opcję sudo „tty_tickets”. Wyłączenie tego w pliku / etc / sudoers rozwiąże problem.

Następujące wyłączy tty_tickets:

Defaults        env_reset,!tty_tickets
Kadu
źródło
Czy to ma jakieś negatywne konsekwencje?
endolith,
1
„Zachowaj ostrożność, jeśli oferujesz dostęp SSH zdalnym użytkownikom, ponieważ możesz przypadkowo zezwolić im na dzielenie się podwyższonymi uprawnieniami, jeśli wyłączysz tty_tickets.” z ask.debian.net/questions/...
endolit
Oferuję dostęp SSH do zdalnego użytkownika, ale to tylko dla mnie, więc zakładam, że nie powoduje to żadnej podatności?
endolith
5

Jeśli nic innego nie działa, spróbuj sudo -i(sam w sobie). To da ci root root po jednym haśle.

Broam
źródło
6
świetny punkt, ale nieco bardziej ryzykowny niż prośba.
mbb
Biorąc pod uwagę, że jest to „sposób Ubuntu” na uzyskanie rootkitów, doszedłem do wniosku, że było to fajne rozwiązanie problemu. Każde polecenie jest nadal rejestrowane.
Broam
1
Jednak tak naprawdę nie rozwiązuje problemu, jest to po prostu sposób na zignorowanie go.
Zoredache
Jest to raczej obejście niż rozwiązanie, ale jest dobre i nie mam nic przeciwko, jeśli automatycznie da ci połowę nagrody. :)
endolith
1

Musiałem tylko wpisać hasło raz, a potem zostanie zapamiętane na pewien czas.

Jeśli zgadnę, założę się, że coś w twoim /var/run/sudokatalogu jest zepsute. W tym katalogu są przechowywane pliki znaczników czasu. Może / var / run jest pełny, może uprawnienia zostały spreparowane. W każdym razie spójrz na ten katalog, podejrzewam, że może tam być twój problem.

Uprawnienia do mojego folderu wyglądają tak.

# find /var/run/sudo/ -ls
1164242    4 drwx------   6 root     root         4096 Jan  1  1985 /var/run/sudo/
1179694    4 drwx------   2 root     www-data     4096 Jan  1  1985 /var/run/sudo/www-data
1164286    4 drwx------   2 root     myuser      4096 Jul 21 23:03 /var/run/sudo/myuser
1163399    0 -rw-------   1 root     myuser         0 Jul 13 22:42 /var/run/sudo/myuser/0
1163453    0 -rw-------   1 root     myuser         0 Jul 21 22:59 /var/run/sudo/myuser/2
1164309    0 -rw-------   1 root     myuser         0 Jul 21 23:03 /var/run/sudo/myuser/6
1163303    0 -rw-------   1 root     myuser         0 Jul 13 22:31 /var/run/sudo/myuser/5

Dla pewności możesz również spróbować uruchomić, sudo -Kaby zabić swoje obecne pliki sygnatur czasowych.

Zoredache
źródło
find: '/var/run/sudo': No such file or directory
endolith,
Cóż, to zły znak, dlaczego nie spróbować go utworzyć i ustawić własność / uprawnienia jak wyżej.
Zoredache,
Lub możesz po prostu ponownie zainstalować pakiet.
Zoredache,
przeinstalowałem sudo z synaptic i nadal tak jest
endolith
To samo pojawia się na VirtualBox z systemem Ubuntu 10.10. nie ma sudofolderu w /var/run. W tej maszynie wirtualnej zapamiętuje moje hasło zgodnie z oczekiwaniami, więc nie wydaje się to istotne. Jedyną rzeczą w visudo na tej maszynie wirtualnej jest Defaults env_reset. Mówi także %sudo ALL=(ALL) ALLzamiast %sudo ALL=(ALL:ALL) ALL.
endolith
0

Sprawdziłbym katalog /etc/sudoers.d/.

Możesz także spróbować obniżyć pakiet sudo do poprzedniej wersji.

Michał Šrajer
źródło