Câu hỏi Lời nói của sudo được lưu trữ ở đâu?


Đối với những người thích sự hài hước, sudo có thể được cấu hình để in một cụm từ ngẫu nhiên hoặc ít xúc phạm hoặc hài hước thay vì trung tính Sorry, try again. bằng cách thêm dòng bên dưới 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ỉ để cho vui, tôi muốn đọc qua tất cả, 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 (chậm trễ sau mỗi lần thử, chỉ có 2 tin nhắn mỗi 3 lần thử, hủy 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 văn bản thuần nào tôi có thể đọc trực tiếp? Hoặc cá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ó sẵn sudo tin nhắn xúc phạm?


225
2017-10-15 18:25


gốc




Các câu trả lời:


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

/usr/lib/sudo/sudoers.so

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

Nếu bạn bật tải xuống nguồn và thực hiện

apt source sudo

Bạn có thể tìm thấy các tệp tin xúc phạm trong thư mục nguồ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 tệp này trông như thế nào:

#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ân vân ... chúng khá dễ đọc.


173
2017-10-15 18:34



Bây giờ Zanna nói với chúng ta rằng chúng nằm trong sudoers.so, bạn cũng có thể "đọc" chúng bằng cách sử dụng các chuỗi thay vì mã nguồn. Chạy này: strings /usr/lib/sudo/sudoers.so - Stéphane
@ Stéphane Đó là sự thật, mặc dù strings sẽ không cho bạn biết nếu tất cả các lời lăng mạ đều bình đẳng. Đọ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 lựa chọn xúc phạm hay không. - kasperd
@ Stéphane Plus đang chạy dây trên một tập tin thực thi tạo ra một số lượng lớn các kết quả dương tính giả. - MariusMatutiae
ins_2001.h  ins_classic.h  ins_csops.h  ins_goons.h - Matt
Tôi sẽ không thực sự làm điều này cho đến khi tôi thấy Goon Show lăng mạ, lúc đó tôi không thể đủ nhanh - JamesENL


Với

dpkg -L sudo | xargs grep dumber

chúng tôi có thể tìm kiếm tệp nào từ gói sudo chứa từ dumber.

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

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

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

/dumber

để tìm kiếm lại từ "dumber". Điều đó khiến chúng ta đúng 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 với q


75
2017-10-15 18:55



Upvoted 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
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ỉ cấp dữ liệu .rodata phần vào strings, một lần nữa giảm tiếng ồn. - Peter Cordes


Danh sách tất cả

Khi chúng ta nhìn vào tất cả những lời lăng mạ, chúng ta khám phá ra một miếng ngon thú vị: nói Bông cải xanh chính xác 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 (2001 Không gian Odyssey lăng mạ):

.
    /*
     * 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 (Lời lăng mạ gốc của Sudo 8):

    /*
     * 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 (Lời lăng mạ CSOps):

    /*
     * 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 Hiển thị những lời 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 tin insults.h chứa các hướng dẫn trình biên dịch mà các lời lăng mạ ở trên bao gồm trong hạt nhân đã biên dịch. Thật vậy, bạn có thể tạo tập tin lăng mạ của riêng bạn, thêm tên vào insults.h và biên dịch lại để có các thông báo như, "Cái gì, bạn là người dùng ArchLinux?" hoặc "Đây không phải là Windows có lỗi phổ biến!", v.v.

Lưu ý #ifdef PC_INSULTS trong một số tệp 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", điều đó có nghĩa là "nếu bạn muốn chính xác."


72
2017-10-15 20:22



Tôi không biết "bông cải xanh" được coi là chính trị hơn là "burrito". - fluffy
@fluffy Tôi cho rằng đó là một tham chiếu đến những người ăn kiêng của quốc gia bao gồm burrito's. Bây giờ tôi rất tiếc khi không kiểm duyệt mã. Tôi chỉ nên sử dụng tùy chọn PC_INSULT và xóa nửa còn lại. 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ế. Kể từ khi những lời lăng mạ này là từ năm 2004, tôi sẽ bị kết tội kiểm duyệt lịch sử, tôi đã loại bỏ các phần #ifdef. - WinEunuuchs2Unix
Đừng lo lắng quá nhiều về "kiểm duyệt lịch sử" khi nói về những thuật ngữ chúng ta nên sử dụng ngay bây giờ. Tôi có thể nghĩ nhiều từ mà tôi đã sử dụng cách đây 40 năm đã bị xúc phạm chủng tộc, giới tính, v.v. Tôi rất vui khi được giới thiệu họ trong bối cảnh lịch sử của họ nhưng cảm ơn xã hội thần đã tiến lên và nhận ra sự tổn hại trong nhiều thuật ngữ này . Có xin vui lòng rant về chính trị chính xác nếu bạn muốn. Hãy cố gắng trong một thiểu số nghèo bị tổn thương bởi những lời đầu tiên xin vui lòng. - Michael Durrant
Không có kết thúc cho tính chính xác của PC. Bất kỳ từ nào có thể được coi là gây khó chịu, và bông cải xanh sẽ không phải là PC ở Peru chẳng hạn ... Burrito là một loại trừ chủng tộc rõ ràng. - Shautieh
Hầu hết mọi người bên ngoài Hoa Kỳ và có lẽ một số người ở Mỹ sẽ không thấy điều này như là "một cơn ác cảm chủng tộc rõ ràng". Đối với tôi, thật buồn cười khi ai đó viết danh sách này lăng mạ (đó là tên tính năng!) thực sự quan tâm đến những người cụ thể đang thực sự bị xúc phạm ... không có kết thúc với nó, và nếu bạn thực sự quan tâm, không bật tính năng này ...?! - laugh


Các câu trả lời ở trên rất 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, 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ó ở sudo_1.8.12-1/plugins/sudoers/ins_csops.h. Điều này có lợi thế là tìm nó mọi nơi có thể là tệp cấu hình được triển khai trong /etc hay bất cứ cái gì. Và vì nó là một tệp .h, nó có thể nhìn thấy nó trong nguồn và không phải cái gì bạn có thể sửa đổi.


11
2017-10-18 23:49





Để thêm vào các câu trả lời khác, những lời lăng mạ xuất hiện trong .rodata phần của sudoers.so. Bạn có thể dùng objcopy để phần nào hạn chế đầu ra, mặc dù vẫn sẽ có nhiều sai tích cực:

$ 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.
$ 

7
2017-10-17 23:48



Nếu bạn có thể chịu đựng được nhiều điều sai lầm tích cực, tại sao không chỉ sử dụng strings thay vì objcopy? :) - Ruslan
@Ruslan: Nó đã là objcopy | strings, để chỉ quét .rodata của phân đoạn văn bản. Điều gì làm giảm dương tính giả là tăng chiều dài chuỗi tối thiểu từ mặc định 4 lên đến một cái gì đó như 10: strings -n10. Và ống vào less, không phải head, IMO. Tất cả những lời lăng mạ dường như là tiếp giáp, BTW. - Peter Cordes
Ah, tôi đã không cuộn mã, để xem strings đã được sử dụng. - Ruslan