sudo cứ hỏi tôi mật khẩu trong vỏ cá


19

sudo trong Ubuntu liên tục hỏi tôi mật khẩu của tôi cho mỗi lệnh. Trước đây, tôi chỉ phải nhập mật khẩu một lần, và sau đó nó sẽ được ghi nhớ trong một khoảng thời gian. Điều này gần đây đã thay đổi, có lẽ sau khi "nâng cấp" lên Natty.

Tôi đã thực hiện sudo visudovà thiết lập Defaults env_reset, timestamp_timeout = 60, đã thử khởi động lại, nhưng nó vẫn không hoạt động. Làm thế nào để tôi sửa lỗi này?

Sau những gợi ý dưới đây, tôi /etc/sudoerstrông như thế này:

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

Cập nhật:

Tôi đã nâng cấp VirtualBox của mình và nó bắt đầu gặp vấn đề tương tự. Khi đoán, tôi đã chạy bash và cố gắng sudo trong đó, và mật khẩu được ghi nhớ chính xác. Chỉ khi tôi sử dụng vỏ mặc định của mình thì nó mới không nhớ. Nó đã làm trong phiên bản Ubuntu trước, nhưng không còn nữa.

Cập nhật:

Tôi đã nâng cấp lên 13.05 và điều này kỳ diệu bắt đầu hoạt động trở lại. Bây giờ nó hỏi mật khẩu của tôi một lần, ngừng hỏi một lúc, rồi hỏi lại sau một khoảng thời gian.


trùng lặp có thể có: superuser.com/questions/148665/ Lời
warren

3
@warren: Đó không phải là một bản sao. Tôi nên được yêu cầu nhập mật khẩu, nhưng sau khi tôi đã nhập mật khẩu một lần, tôi không phải mất một khoảng thời gian nhất định. Tôi đã thay đổi lượng thời gian này với visudo trong quá khứ nhưng nó không hoạt động nữa.
endolith

Tôi nghĩ rằng bạn phải sử dụng nhiều câu lệnh Mặc định, thay vì một câu lệnh tách riêng.
Stephanie

@Stephanie, tôi chắc chắn rằng có một câu lệnh Mặc định duy nhất với các giá trị được phân tách bằng dấu phẩy hoạt động tốt.
Zoredache

Tôi thấy bạn đã thêm một dòng như thế Defaults:endolith timestamp_timeout=60, nhưng bạn không thuộc bất kỳ nhóm nào được gọi là endolith, accordidng cho một nhận xét khác ở đây. vậy tên người dùng nào bạn đang sử dụng? Hãy kiểm tra với whoami, và thêm tên người dùng mà thay endolithvào Defaults:endolith timestamp_timeout=60hoặcendolith ALL=(ALL) NOPASSWD: ALL
wim

Câu trả lời:


15

@endolith: Vâng, nó dường như chỉ ảnh hưởng đến cá. Tôi đã có cùng một vấn đề, vấn đề là do tùy chọn sudo "tty_tickets". Vô hiệu hóa điều này trên tập tin / etc / sudoers của bạn sẽ giải quyết vấn đề.

Sau đây sẽ vô hiệu hóa tty_tickets:

Defaults        env_reset,!tty_tickets

Điều này có bất kỳ phân nhánh tiêu cực?
endolith

1
"Hãy cẩn thận nếu bạn cung cấp quyền truy cập SSH cho người dùng từ xa, vì bạn có thể vô tình cho phép họ chia sẻ các đặc quyền nâng cao với bạn nếu bạn tắt tty_tickets." từ ask.debian.net/questions/ trộm
endolith

Tôi cung cấp quyền truy cập SSH cho người dùng từ xa, nhưng nó chỉ dành cho bản thân tôi, vì vậy tôi cho rằng điều này không gây ra bất kỳ lỗ hổng nào?
endolith

5

Nếu không có gì khác hoạt động, hãy thử sudo -i(bằng chính nó). Điều đó sẽ cung cấp cho bạn một vỏ gốc sau một mật khẩu.


6
điểm tuyệt vời nhưng hơi mạo hiểm hơn yêu cầu.
mbb

Xem xét đây là "cách Ubuntu" để có được một rootshell, tôi đoán rằng đó là một công việc gọn gàng xung quanh vấn đề. Mọi lệnh vẫn được ghi.
Broam

1
Nó không thực sự khắc phục vấn đề mặc dù, về cơ bản nó chỉ là một cách để bỏ qua nó.
Zoredache

Đây là một cách giải quyết chứ không phải là một giải pháp, nhưng thật tốt và tôi không phiền nếu nó tự động mang lại cho bạn một nửa tiền thưởng. :)
endolith

1

Tôi chỉ phải nhập mật khẩu một lần, và sau đó nó sẽ được ghi nhớ trong một khoảng thời gian.

Nếu tôi đoán ở đâu, tôi sẽ đặt cược rằng một cái gì đó về /var/run/sudothư mục của bạn bị làm hỏng. Thư mục này là nơi lưu trữ các dấu thời gian. Có thể / var / run đã đầy, có thể các quyền đã bị hỏng. Dù sao, nhìn vào thư mục đó, tôi nghi ngờ vấn đề của bạn có thể ở đó.

Các quyền trên thư mục của tôi trông như thế này.

# 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

Để có biện pháp tốt, bạn cũng có thể muốn thử chạy sudo -Kđể giết các tệp dấu thời gian hiện tại của mình.


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

Đó là một dấu hiệu xấu, tại sao không thử tạo nó và đặt quyền sở hữu / quyền như trên.
Zoredache

Hoặc bạn chỉ có thể cài đặt lại gói.
Zoredache

cài đặt lại sudo với synap và nó vẫn nói rằng
endolith

Tôi nhận được điều tương tự trên VirtualBox chạy Ubuntu 10.10. không có sudothư mục trong /var/run. Trong máy ảo này, nó nhớ mật khẩu của tôi như mong đợi, vì vậy điều này dường như không liên quan. Điều duy nhất trong visudo trên máy ảo này là Defaults env_reset. Nó cũng nói %sudo ALL=(ALL) ALLthay vì %sudo ALL=(ALL:ALL) ALL.
endolith

0

Tôi sẽ kiểm tra thư mục /etc/sudoers.d/.

Bạn cũng có thể thử hạ cấp gói sudo xuống phiên bản trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.