Những lời lăng mạ của sudo được lưu trữ ở đâu?


234

Đối với những người thích sự hài hước, sudocó thể được cấu hình để in một cụm từ ngẫu nhiên ít nhiều xúc phạm hoặc hài hước thay vì trung lập Sorry, try again.bằng cách thêm dòng dưới đây vào /etc/sudoers(sử dụng lệnh sudo visudo, không chỉnh sửa thủ công!):

Defaults insults

Dưới đây là một số ví dụ:

[sudo] password for bytecommander: 
The more you drive -- the dumber you get.
[sudo] password for bytecommander: 
I've seen penguins that can type better than that.
[sudo] password for bytecommander: 
This mission is too important for me to allow you to jeopardize it.
[sudo] password for bytecommander: 
He has fallen in the water!
[sudo] password for bytecommander: 
Hold it up to the light --- not a brain in sight!

Bây giờ chỉ để giải trí, tôi muốn đọc qua tất cả chúng, nhưng nhập sai mật khẩu cả ngày không thực sự là phương pháp tốt nhất (trì hoãn sau mỗi lần thử, chỉ có 2 tin nhắn trên 3 lần thử, hủy bỏ sau 3 lần thử, ...).

Vậy ... những lời lăng mạ này thực sự được lưu trữ ở đâu? Bất kỳ tập tin văn bản đơn giản tôi có thể đọc trực tiếp? Hoặc chuỗi mã hóa cứng trong mã nguồn?

Làm thế nào tôi có thể nhận được một danh sách tất cả các sudotin nhắn xúc phạm có sẵn ?

Câu trả lời:


181

Chúng nằm trong tệp nhị phân

/usr/lib/sudo/sudoers.so

(được tìm thấy bởi find /usr/lib/sudo -type f | xargs grep "fallen in the water":)

Nếu bạn kích hoạt tải xuống nguồn và làm

apt source sudo

Bạn có thể tìm thấy các tập tin lăng mạ trong thư mục nguồn bên dưới

plugins/sudoers

Các tập tin là

ins_2001.h
ins_classic.h
ins_csops.h
ins_goons.h
insults.h

Ví dụ về những gì các tập tin này trông giống như:

#ifndef SUDOERS_INS_GOONS_H
#define SUDOERS_INS_GOONS_H

/*
 * Insults from the "Goon Show."
 */

    "You silly, twisted boy you.",
    "He has fallen in the water!",
    "We'll all be murdered in our beds!",
    "You can't come in. Our tiger has got flu",

và v.v ... chúng khá dễ đọc.


24
Bây giờ Zanna nói với chúng tôi rằng họ đang ở trong sudoers.so, bạn cũng có thể "đọc" chúng bằng chuỗi thay vì mã nguồn. Chạy cái này: strings /usr/lib/sudo/sudoers.so
Stéphane

3
@ Stéphane Điều đó là đúng, mặc dù stringssẽ không cho bạn biết nếu tất cả các lời lăng mạ đều như nhau. Đọc nguồn thực tế có thể tiết lộ liệu các tiêu chí nhất định có ảnh hưởng đến sự lựa chọn xúc phạm hay không.
kasperd

3
@ Stéphane Plus chạy các chuỗi trên một tệp thực thi tạo ra một số lượng lớn các dương tính giả ,.
MariusMatutiae


7
Tôi sẽ không thực sự làm điều này cho đến khi tôi thấy những lời lăng mạ của Goon Show, tại thời điểm đó tôi không thể khóa đủ nhanh
JamesENL

77

Với

dpkg -L sudo | xargs grep dumber

chúng ta có thể tìm kiếm tập tin nào từ gói sudochứa từ dumber.

Trận đấu duy nhất là trong tập tin /usr/lib/sudo/sudoers.so. Đây là một tệp nhị phân, vì vậy chúng tôi sử dụng stringslệnh để chỉ nhận những thứ trông giống như con người có thể đọc được. Vì nó rất nhiều, chúng tôi dẫn kết quả vào less:

strings /usr/lib/sudo/sudoers.so | less

Trong lesschúng ta có thể sử dụng

/dumber

để tìm kiếm lại từ "dumber". Điều đó khiến chúng ta phải vào những lời lăng mạ. Cuộn lên và xuống bằng các phím con trỏ và thoát bằngq


6
Upvote cho thấy một kỹ thuật chung dễ dàng để khám phá câu trả lời cho các loại câu hỏi.
200_success

1
Sử dụng strings -n10để giảm dương tính giả. Xem thêm câu trả lời của @ DigitalTrauma , sử dụng objcopy để chỉ cung cấp .rodataphần vào strings, một lần nữa giảm tiếng ồn.
Peter Cordes

76

Danh sách tất cả các xúc phạm

Khi chúng ta nhìn vào tất cả những lời lăng mạ, chúng ta phát hiện ra một mẩu tin thú vị: nói rằng Bông cải xanh là chính xác, nhưng nói Burrito thì không. Tất cả những lời lăng mạ được liệt kê dưới đây.

ins_2001.h (Những lời lăng mạ của Space Odyssey năm 2001):

.
    /*
     * HAL insults (paraphrased) from 2001.
     */

    "Just what do you think you're doing Dave?",
    "It can only be attributed to human error.",
    "That's something I cannot allow to happen.",
    "My mind is going. I can feel it.",
    "Sorry about this, I know it's a bit silly.",
    "Take a stress pill and think things over.",
    "This mission is too important for me to allow you to jeopardize it.",
    "I feel much better now.",

ins_classic.h (Bản gốc Sudo 8 lăng mạ):

    /*
     * Insults from the original sudo(8).
     */

    "Wrong!  You cheating scum!",
#ifdef PC_INSULTS
    "And you call yourself a Rocket Scientist!",
#else
    "No soap, honkie-lips.",
#endif
    "Where did you learn to type?",
    "Are you on drugs?",
    "My pet ferret can type better than you!",
    "You type like i drive.",
    "Do you think like you type?",
    "Your mind just hasn't been the same since the electro-shock, has it?",

ins_csops.h (CSOps lăng mạ):

    /*
     * CSOps insults (may be site dependent).
     */

    "Maybe if you used more than just two fingers...",
    "BOB says:  You seem to have forgotten your passwd, enter another!",
    "stty: unknown mode: doofus",
    "I can't hear you -- I'm using the scrambler.",
    "The more you drive -- the dumber you get.",
#ifdef PC_INSULTS
    "Listen, broccoli brains, I don't have time to listen to this trash.",
#else
    "Listen, burrito brains, I don't have time to listen to this trash.",
#endif
    "I've seen penguins that can type better than that.",
    "Have you considered trying to match wits with a rutabaga?",
    "You speak an infinite deal of nothing",

ins_goons.h (Goon Show lăng mạ):

.
    /*
     * Insults from the "Goon Show."
     */

    "You silly, twisted boy you.",
    "He has fallen in the water!",
    "We'll all be murdered in our beds!",
    "You can't come in. Our tiger has got flu",
    "I don't wish to know that.",
    "What, what, what, what, what, what, what, what, what, what?",
    "You can't get the wood, you know.",
    "You'll starve!",
    "... and it used to be so popular...",
    "Pauses for audience applause, not a sausage",
    "Hold it up to the light --- not a brain in sight!",
    "Have a gorilla...",
    "There must be cure for it!",
    "There's a lot of it about, you know.",
    "You do that again and see what happens...",
    "Ying Tong Iddle I Po",
    "Harm can come to a young lad like that!",
    "And with that remarks folks, the case of the Crown vs yourself was proven.",
    "Speak English you fool --- there are no subtitles in this scene.",
    "You gotta go owwwww!",
    "I have been called worse.",
    "It's only your word against mine.",
    "I think ... err ... I think ... I think I'll go home",

Tệp insults.hnày chứa các hướng dẫn trình biên dịch trong đó bao gồm những lời lăng mạ ở trên trong kernel đã biên dịch. Thật vậy, bạn có thể tạo tệp xúc phạm của riêng mình, thêm tên vào insults.h và biên dịch lại để có các thông báo như "Bạn là người dùng ArchLinux?" hoặc "Đây không phải là Windows mà lỗi là phổ biến!", v.v.

Lưu ý #ifdef PC_INSULTStrong một số các tập tin xúc phạm. Điều này không có nghĩa là "nếu bạn có một máy tính cá nhân" thì nó có nghĩa là "nếu bạn muốn chính xác."


47
Tôi không có ý tưởng "bông cải xanh" được coi là chính xác hơn "burrito".
lông mịn

9
@fluffy Tôi cho rằng đó là một tham chiếu đến những người có chế độ ăn kiêng quốc gia bao gồm burrito. Bây giờ tôi rất tiếc không kiểm duyệt mã. Tôi chỉ nên sử dụng các tùy chọn PC_INSULT và xóa nửa kia. Mặt khác, tôi không thích kiểm duyệt lịch sử như đã xảy ra với Tom Sawyer và những cuốn sách như thế. Vì những lời lăng mạ này là từ năm 2004, tôi sẽ phạm tội kiểm duyệt lịch sử nếu tôi xóa phần #ifdef.
WinEunuuchs2Unix

7
Đừng lo lắng quá nhiều về "lịch sử kiểm duyệt" khi nói về những thuật ngữ chúng ta nên sử dụng bây giờ. Tôi có thể nghĩ ra nhiều từ mà tôi đã sử dụng 40 năm trước đó là xúc phạm chủng tộc, phân biệt giới tính, v.v. Tôi rất vui khi đề cập đến chúng trong bối cảnh lịch sử của họ nhưng cảm ơn xã hội đã tiến lên và nhận ra tác hại trong nhiều thuật ngữ này . Vâng, xin vui lòng nói về chính trị nếu bạn muốn. Trước tiên, hãy thử ở trong một nhóm thiểu số nghèo bị tổn thương.
Michael Durrant

4
Không có kết thúc cho tính chính xác của PC. Bất kỳ từ nào cũng có thể bị coi là xúc phạm và bông cải xanh sẽ không phải là PC ở Peru chẳng hạn ... Burrito là một trò hề chủng tộc rõ ràng.
Shautieh

17
Hầu hết mọi người bên ngoài Hoa Kỳ và có lẽ một số người ở Hoa Kỳ sẽ không coi đây là "một sự nhếch nhác chủng tộc rõ ràng". Đối với tôi, thật buồn cười là bất cứ ai viết ra danh sách những lời lăng mạ có chủ ý này (đó là tên tính năng!) Thực sự quan tâm đến những người cụ thể thực sự bị xúc phạm ... sẽ không có kết thúc, và nếu bạn thực sự lo lắng, đừng kích hoạt tính năng này ...?!
cười

11

Các câu trả lời trên là tuyệt vời cho tìm kiếm ngoại tuyến. Nhưng chúng tôi đang trực tuyến. Vì vậy, hãy mở tìm kiếm mã Debian và thử một trong những lời lăng mạ ở đây . Nó ngay lập tức cho bạn biết nó đang ở trong sudo_1.8.12-1/plugins/sudoers/ins_csops.h. Điều này có lợi thế là tìm thấy nó ở khắp mọi nơi, đó là một tệp cấu hình sẽ được triển khai trong /etchoặc bất cứ điều gì. Và vì nó là tệp .h, nó hiển thị trong nguồn và không phải là thứ bạn có thể sửa đổi.


7

Để thêm vào các câu trả lời khác, những lời lăng mạ dường như nằm trong .rodataphần của sudoers.so. Bạn có thể sử dụng objcopyđể hạn chế phần nào đầu ra, mặc dù vẫn sẽ có rất nhiều thông tin sai:

$ objcopy /usr/lib/sudo/sudoers.so /dev/null --dump-section .rodata=/dev/stdout | strings | head
/build/sudo-g3ghsu/sudo-1.8.16/plugins/sudoers/auth/sudo_auth.c
invalid authentication methods
Invalid authentication methods compiled into sudo!  You may not mix standalone and non-standalone authentication.
There are no authentication methods compiled into sudo!  If you want to turn off authentication, use the --disable-authentication configure option.
Unable to initialize authentication methods.
Just what do you think you're doing Dave?
It can only be attributed to human error.
That's something I cannot allow to happen.
My mind is going. I can feel it.
Sorry about this, I know it's a bit silly.
$ 

Nếu bạn có thể chịu đựng được nhiều dương tính giả, tại sao không sử dụng stringsthay vì objcopy? :)
Ruslan

@Ruslan: Đã có objcopy | strings, chỉ quét .rodataphần của đoạn văn bản. Điều làm giảm dương tính giả là tăng độ dài chuỗi tối thiểu từ 4 mặc định lên tới 10 : strings -n10. Và đường ống vào less, không head, IMO. Tất cả những lời lăng mạ dường như là liên tục, BTW.
Peter Cordes

Ah, tôi đã không cuộn mã, để xem stringsđã được sử dụng.
Ruslan
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.