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.



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

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.


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.


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.

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.