Làm cách nào tôi có thể CTRL ^ C trong một dấu nhắc mật khẩu?


8

Nói rằng tôi đã bắt đầu một sulệnh và tôi muốn hủy nó. Control+ Ckhông hoạt động sugiống như nó làm sudo... Tôi phải hoàn thành lời nhắc (bằng cách lấy sai mật khẩu đủ lần hoặc bằng cách nhập đúng).

Có một cái gì đó mà tôi có thể gõ để giết một dấu nhắc mật khẩu?



@DisplayName Bạn không thể điều khiển một su như bạn có thể sudo ... đây là một kịch bản khác.
hỏi

câu trả lời là control-D.
DisplayName

@DisplayName Có, xem câu trả lời của Gilles. Quan điểm của tôi là điều này không nên được đánh dấu là trùng lặp ...
hỏi

Nó là một bản sao. Câu trả lời cho bài đăng tôi liên kết cũng cho biết control-D.
DisplayName

Câu trả lời:


5

suđang chạy với các đặc quyền nâng cao và bạn không thấy nó phản hồi ^C(sẽ gửi tín hiệu với các đặc quyền của bạn ). Bạn có thể su để một cái vỏ khác và giết nó từ cái vỏ kia. Ngoài ra (tùy thuộc vào hệ thống), nó có thể phản hồi SIGHUP(tín hiệu gác máy) nếu bạn đóng phiên cuối sutrong khi tiến trình lúng túng .

Có nhiều hơn một cách sucó thể bỏ qua ^C, ví dụ:

  • thiết lập xử lý tín hiệu hoặc
  • chạy dưới một thiết bị đầu cuối kiểm soát khác nhau.

Một bản đọc nhanh của Debiansu dường như sử dụng cái sau. Hệ thống của bạn tất nhiên có thể khác nhau.

Đọc thêm:


Nếu tôi thực thi sunhư một người dùng thông thường và nó đang chờ nhập mật khẩu từ người dùng, liệu nó có "chạy với các đặc quyền nâng cao" tại thời điểm này không?
techraf

1
Có: bạn có thể tự mình nhìn thấy bằng cách thực hiện ps -eftừ một thiết bị đầu cuối khác. Điều đó xảy ra tự động vì suđược setuid'd root .
Thomas Dickey

7

Bạn có thể CTRL-D sunhắc nhở.
Phím tắt này báo hiệu một phần cuối của tệp trên bàn điều khiển, thoát khỏi dấu nhắc; giao diện điều khiển sẽ hiển thị Authentication error, đó là mong đợi.


3
Control-D sẽ là EOF (QUIT là một thứ khác và thường bị bắt ). Nhưng vâng, EOF có thể hoạt động.
Thomas Dickey

2

Tôi đã tìm thấy cách tốt nhất để giết sutrong khi nhập mật khẩu không chính xác là Control+ Utheo sau là Control+ D. Điều này sẽ tránh sự chậm trễ khó chịu. Bạn cũng có thể chỉ cần xóa đầu vào bằng Control+ Uvà thử lại nhập mật khẩu.

Control+ Ulà một lệnh xóa dòng văn bản hiện tại và cũng hoạt động trong trình bao (và có thể cả các vị trí khác nữa). Thật tuyệt khi nó dường như hoạt động suđể xóa mật khẩu hiện đang nhập.

Sử dụng Control+ Cdường như không hoạt động, có vẻ như vì lý do nào đó suchỉ cần bỏ qua nó. Thật không đúng khi người dùng bắt đầu quá trình không thể giết nó nữa vì setuid - suhoàn toàn ổn nếu bạn giết nó bằng SIGTERMhoặc SIGQUITtừ một thiết bị đầu cuối khác (như một người dùng đã khởi động nó). SIGINTkhông hoạt động, vì vậy sucó lẽ chỉ cần bỏ qua nó.

Control+ Dvới đầu vào mật khẩu trống dường như là cách duy nhất để giết ngay lập tức khi chạy su- nếu có bất kỳ văn bản nào được nhập, thì nhấn Control+ Dsẽ gây ra độ trễ 3 giây (trừ khi bạn thực sự nhập đúng mật khẩu, trong trường hợp đó. .. nó sẽ bắt đầu một vỏ gố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.