sudo terus bertanya kata sandi saya di kulit ikan


19

sudo di Ubuntu terus meminta saya untuk kata sandi saya untuk setiap perintah. Sebelumnya, saya hanya perlu memasukkan kata sandi sekali, dan kemudian akan diingat untuk jangka waktu tertentu. Ini baru-baru ini berubah, mungkin setelah "memutakhirkan" ke Natty.

Saya sudah selesai sudo visudodan mengatur Defaults env_reset, timestamp_timeout = 60, mencoba me-reboot, tetapi masih tidak berhasil. Bagaimana cara saya memperbaikinya?

Setelah saran di bawah, /etc/sudoerspenampilan saya seperti ini:

#
# 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

Memperbarui:

Saya memutakhirkan VirtualBox saya dan mulai mengalami masalah yang sama. Di suatu tebakan, saya berlari bash, dan mencoba sudo di dalamnya, dan kata sandi diingat dengan benar. Hanya ketika saya menggunakan shell fish default saya yang tidak ingat. Itu di rilis Ubuntu sebelumnya, tetapi tidak lagi.

Memperbarui:

Saya memutakhirkan ke 13.05 dan ini secara ajaib mulai bekerja lagi. Sekarang ia meminta kata sandi saya sekali, berhenti bertanya sebentar, dan kemudian bertanya lagi setelah jangka waktu tertentu.



3
@warren: Itu bukan duplikat. Saya harus diminta untuk memasukkan kata sandi, tetapi setelah saya memasukkannya sekali, saya tidak harus melakukannya untuk jangka waktu tertentu. Saya telah mengubah jumlah waktu ini dengan visudo di masa lalu tetapi tidak berfungsi lagi.
endolith

Saya pikir Anda harus menggunakan beberapa pernyataan Defaults, daripada satu pernyataan terpisah yang umum.
Stephanie

@Stephanie, saya yakin memiliki pernyataan Default tunggal dengan nilai yang dipisahkan koma berfungsi dengan baik.
Zoredache

saya melihat Anda telah menambahkan baris seperti Defaults:endolith timestamp_timeout=60, tetapi Anda tidak dalam grup yang disebut endolith, menurut komentar lain di sini. jadi apa nama pengguna yang Anda gunakan? Periksa dengan whoami, dan tambahkan nama pengguna itu di endolithdalam Defaults:endolith timestamp_timeout=60atauendolith ALL=(ALL) NOPASSWD: ALL
wim

Jawaban:


15

@endolith: Ya, sepertinya hanya mempengaruhi ikan. Saya memiliki masalah yang sama, masalah ini disebabkan oleh opsi sudo "tty_tickets". Menonaktifkan ini pada file / etc / sudoers Anda akan menyelesaikan masalah.

Berikut ini akan menonaktifkan tty_tickets:

Defaults        env_reset,!tty_tickets

Apakah ini memiliki konsekuensi negatif?
endolith

1
"Berhati-hatilah jika Anda menawarkan akses SSH ke pengguna jarak jauh, karena Anda dapat secara tidak sengaja mengizinkan mereka untuk berbagi hak tinggi dengan Anda jika Anda menonaktifkan tty_tickets." dari ask.debian.net/questions/…
endolith

Saya menawarkan akses SSH ke pengguna jarak jauh, tetapi ini hanya untuk saya sendiri, jadi saya menganggap ini tidak menyebabkan kerentanan?
endolith

5

Jika tidak ada yang berhasil, coba sudo -i(dengan sendirinya). Itu akan memberi Anda shell root setelah satu kata sandi.


6
titik bagus tapi sedikit lebih berisiko daripada permintaan.
mbb

Mengingat ini adalah "cara Ubuntu" untuk mendapatkan rootshell, saya pikir itu adalah pekerjaan yang rapi di sekitar masalah. Setiap perintah masih dicatat.
Broam

1
Itu tidak benar-benar memperbaiki masalah, pada dasarnya hanya cara untuk mengabaikannya.
Zoredache

Ini adalah solusi daripada solusi, tapi itu bagus dan saya tidak keberatan jika secara otomatis memberi Anda setengah dari karunia. :)
endolith

1

Saya hanya perlu memasukkan kata sandi sekali, dan kemudian akan diingat untuk jangka waktu tertentu.

Jika saya harus menebak, saya berani bertaruh bahwa sesuatu tentang /var/run/sudodirektori Anda kacau. Direktori ini adalah tempat file timestamp disimpan. Mungkin / var / run sudah penuh, mungkin izinnya kacau. Pokoknya, lihat direktori itu, saya menduga masalah Anda mungkin ada di sana.

Izin pada folder saya terlihat seperti ini.

# 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

Sebagai tambahan, Anda mungkin juga ingin mencoba menjalankan sudo -Kuntuk membunuh file cap waktu Anda saat ini.


find: '/var/run/sudo': No such file or directory
endolith

Nah itu pertanda buruk, mengapa tidak mencoba membuatnya, dan atur kepemilikan / izin seperti di atas.
Zoredache

Atau Anda bisa menginstal ulang paket.
Zoredache

diinstal ulang sudo dengan sinaptik dan masih mengatakan bahwa
endolith

Saya mendapatkan hal yang sama pada VirtualBox yang menjalankan Ubuntu 10.10. tidak ada sudofolder di /var/run. Di mesin virtual ini, ia mengingat kata sandi saya seperti yang diharapkan, jadi ini sepertinya tidak relevan. Satu-satunya hal dalam visudo pada mesin virtual ini adalah Defaults env_reset. Itu juga mengatakan %sudo ALL=(ALL) ALLbukannya %sudo ALL=(ALL:ALL) ALL.
endolith

0

Saya akan memeriksa direktori /etc/sudoers.d/.

Anda juga dapat mencoba menurunkan versi paket sudo ke versi sebelumnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.