Yêu thích của bạn * đau đớn * khoảnh khắc Unix là gì


34

Làm thế nào về việc chia sẻ những bài học yêu thích của bạn những khoảnh khắc học được ?


Hài hước có bao nhiêu câu trả lời liên quan đến rmlệnh. Hoặc buồn.
Barry Brown

Câu trả lời:


67

Tôi tò mò nếu chmod 000 /sẽ làm việc.

Vâng, hoàn hảo. Vài phút sau tôi đang tìm kiếm đĩa CD cứu hộ.


11
Wow tôi thậm chí không bao giờ xem xét điều đó cho đến khi bạn đề cập đến nó. Tốt một.
Stefan Lasiewski

Điều gì xảy ra nếu bạn làm điều đó trên một tập tin thông thường?
Lục M

@Luc Tôi đoán bạn chỉ cần
nhai

Tôi thường làm những 'thí nghiệm' như vậy trong Arch VM của mình. Nếu nó đánh bom tôi chỉ cần cuộn nó lại.
André Paramés

Tôi đã phạm sai lầm này một lần. Nó rất xấu hổ, nhưng một bài học quý giá.
Charles Sprayberry

37

Khi tôi mới bắt đầu làm tư vấn người dùng cho trường đại học mà tôi đang theo học, tôi đã được trao sudoquyền hạn chế để giúp sinh viên bị mất / quên mật khẩu. sudo passwd <username>là bạn mới của tôi Một giờ sau định hướng của tôi, sự tò mò của tôi đã tốt hơn với tôi và tôi gõ vào sudo passwdvà nhìn chằm chằm vào nỗi kinh hoàng trước lời nhắc lấy mật khẩu mới. Tôi hơi sợ khi ^Cthoát ra khỏi nó, nghĩ rằng (rõ ràng là hóa ra) rằng tôi có thể để tài khoản bị nghi ngờ trong trạng thái thoáng qua, vì vậy tôi đã nhập mật khẩu và ngay lập tức đi lên cầu thang đến miền 2 của tầng 2 SuperUser trong khuôn viên trường và hỏi liệu anh ta có muốn biết mật khẩu gốc của hệ thống chính không.


4
heh, sở hữu! Phó bối rối: P
Spudd86

30
bạn có thể đã nhập mật khẩu không khớp tại dấu nhắc xác nhận thứ 2, vì vậy sẽ không có gì bị ảnh hưởng và passwd sẽ thoát.
Wadih M.

1
@Wadih: passwdcư xử buồn cười khi chạy bằng root. Ví dụ, khi không kiểm tra lỗi đánh máy, nó sẽ hỏi lại.
Gyorgy Andrasek

Bạn có thể đã thay đổi nó trở lại như trước đây.
HandyGandy

1
@HandyGandy anh không biết mật khẩu gốc. Anh ta chỉ có quyền sudo để chạy passwd.
gnud

32

Ngạc nhiên không ai khác đã đề cập đến điều này chưa:

rm -rf .*

(Trong khi cố gắng xóa tất cả các tệp và thư mục con bị ẩn, hoàn toàn quên rằng nó sẽ lặp lại ...)


3
Trong khi điều đó đã đốt cháy tôi trong quá khứ, nhiều phiên bản rmsẽ không làm điều đó ngay bây giờ. Tôi đã thử trên Darwin và nhận được lỗi rm: "." and ".." may not be removed.
Stefan Lasiewski

7
Tôi làm điều đó mọi lúc, trên tất cả các loại nền tảng. Hoạt động như dự định trên OpenBSD, NetBSD, Linux và OpenSolaris.
Polemon

Nếu bạn muốn khớp tất cả các dotfiles trừ ..., hãy sử dụng .[^.]*. (Chà, điều này thực sự sẽ bỏ lỡ tất cả các tệp bắt đầu bằng .., nhưng thường chỉ có một.)
Sven Marnach

@Sven: Một cách khác là .??*, tôi thấy dễ gõ hơn. Cái này sẽ không khớp với các tệp chấm hai chữ cái .a, nhưng chúng cũng không bình thường. Tôi tìm kiếm các tập tin cấu hình trong thư mục nhà của tôi grep -r .??*, ví dụ.
Neil Mayhew

31

Makefile:

clean:
    @rm -f * .o

Tất nhiên, điều này làm cho việc make cleanxóa mã nguồn của bạn thay vì chỉ các tệp đối tượng.

Bài học: sử dụng kiểm soát phiên bản.


11
Nếu bạn không thể nhìn thấy nó, hãy chú ý đến nhân vật không gian giữa *.o
Denilson Sá Maia

1
Tôi cảm thấy nỗi đau của bạn, đã xảy ra với tất cả chúng ta tại một số điểm :)
axel_c

Bài reloaded: bất cứ khi nào bạn làm vỏ thứ, và bạn thấy một " ", hãy * thêm , không có, hãy thêm phụ EXTRA cẩn thận.
Jürgen A. Erhard

Tôi đã làm điều đó, bằng tay, sau khi kéo tất cả sáng hơn trong phòng thí nghiệm. Dự án là do một vài giờ sau đó. Nó hóa ra là một phước lành trong ngụy trang; phiên bản mới, được viết lại mà tôi đã bật tốt hơn nhiều so với phiên bản băng bó mà tôi đã xóa.
Barry Brown

1
Tham chiếu Bumblebee bắt buộc: github.com/MrMEEE/bumblebee/commit/a047be
Residuum

30

Có một người bạn chạy :() { :|:&}; :trên một máy chủ từ xa nơi chúng tôi không có quyền truy cập bàn điều khiển. Không thể khởi động lại nó, hoàn toàn đóng băng, máy chủ sản xuất .

Chia nhỏ (theo yêu cầu) để làm cho nó dễ đọc hơn một chút.

:() # Define ':' as a function. Every time we say ':' execute the following code block
{ # Start of code block
    : # Call ':' again. 
    | # Pipe output to...
    : # Another ':' 
    & # Disown process. 
    # All on one line this would read :|:&, 
} # End of code block
; # End definition of ':' as a function
: # Call ':'

Nó có thể dễ dàng hơn để xem xét nó như là

bomb() { bomb|bomb& }; bomb

1
Bạn sẽ rất tử tế để giải thích những gì nó làm? Tôi không thể tìm ra nó và tôi không muốn thử nó;)
naugtur

23
Trông giống như một quả bom ngã ba. Đừng thử điều này trừ khi bạn thực sự biết những gì bạn đang làm.
Zaid

5
Vâng Đó là một cái nĩa. Và một cái tốt đẹp :) Nó dường như rẽ nhánh phiên dịch bash khi nó cố gắng phân tích nó. Nếu bạn bỏ qua cuối cùng :nó không làm gì. Và nó hoàn toàn không sử dụng bộ nhớ, chỉ là giả mạo rất nhiều. [Vâng, tôi đã thử nó :)]. Các hiệu ứng có thể bị chặn với một hạn ngạch về số lượng quy trình cho mỗi người dùng.
naugtur


4
+1 cho nhận xét trên. Nó dễ hiểu hơn nhiều so với vẻ ngoài của nó.
Umang

29

Tôi có nghĩa là tốt, tôi thực sự đã làm. Cố gắng chmodđệ quy một thư mục và cuối cùng trao đổi ./với /.

Như gốc tất nhiên, bởi vì chỉ với gốc mới có thể đạt được nỗi đau thực sự (và do đó giác ngộ).


23
+1 cho trích dẫn "Chỉ với gốc rễ mới có thể đạt được nỗi đau thực sự (và do đó giác ngộ)."
Stefan Lasiewski

21

Tôi vô tình lau bảng phân vùng ổ đĩa chính của mình, nghĩ rằng tôi đang làm việc trên một ổ đĩa khác.

Với cuộn ngược, sử dụng cẩn thận df, bộ nhớ và may mắn, tôi đã có thể tạo lại chính xác, viết lại, khởi động lại và hy vọng ... Và nó đã hoạt động.


6
Một người bạn đã làm điều này, và tôi đã giúp anh ta khôi phục lại cái bàn. Thật không may, chúng tôi không có các giá trị trước đó cho kích thước phân vùng và độ lệch, vì vậy chúng tôi đã sử dụng vòng lặp bash với ddviệc đọc khối 4k đầu tiên của mỗi hình trụ được file -tìm thấy để siêu khối và do đó bắt đầu hệ thống tệp. Đây là trên một đĩa CD trực tiếp và không có đủ RAM để làm mọi thứ chúng ta cần làm (bao gồm cài đặt một hoặc hai gói) vì vậy chúng tôi đã tiến hành một quy trình chạy trong ssh trên một máy khác.
Neil Mayhew

2
Ôi. Đó là lý do tại sao tôi luôn luôn sử dụng sfdisk -Ođể sao lưu bảng phân vùng. FYI: cssecurity.org/wiki/TestDisk có thể tự động hóa những gì @Neil Mayhew đã làm.
ephemient

2
Tôi cũng ở đó, testdisklưu hộp của tôi
phunehehe

Ngày nay, chúng ta có gpart, tìm kiếm những thứ có thể giống với các hệ thống tệp và xây dựng một bảng phân vùng từ đó.
Simon Richter

19

Không thực sự là khoảnh khắc của tôi, nhưng của người khác.

Quay lại khi tôi làm việc tại một cơ sở nghiên cứu khoa học hạt nhân, chúng tôi đã từng chạy một số máy tính SunOS, Ultrix và Linux và các nhà nghiên cứu phải chia sẻ CPU trên các máy đó. Khi các nhóm nghiên cứu riêng lẻ nhận được tài trợ nghiên cứu của riêng họ, họ đã mua máy tính của riêng họ, chủ yếu là SparcStations và họ đã tự quản trị hệ thống.

SunOS được sử dụng để giao hàng với máy tính để bàn OpenView và trình quản lý tệp đẹp, đây là giao diện của nó: văn bản thay thế

Hầu hết các nhà nghiên cứu của chúng tôi đã chạy bằng root và hơn một lần chúng tôi phải cài đặt lại hệ điều hành của họ vì ai đó đã quyết định dọn dẹp thư mục gốc và di chuyển / bin, / etc, / tmp và mọi thứ khác làm rối tung khung nhìn vào Trashcan hoặc một số thư mục con.

Những người dùng khác đã chọn dọn dẹp thư mục / bin và xóa bất kỳ lệnh nào họ không biết.

Những người may mắn đã sao lưu, hầu hết đã mua một ổ đĩa băng, nhưng không có truyền thống chạy các bản sao lưu.


11
Dọn dẹp thư mục gốc? Có thật không? CÓ THẬT KHÔNG? nức nở
Alex B

41
TRWTF là họ đang chạy như root, tại một cơ sở nghiên cứu khoa học hạt nhân!
đảo ngược

4
ảnh chụp màn hình tuyệt vời! làm cho tôi tất cả hoài niệm.
gabe.

@Alex - cũng có tệp VMUNIX lớn mà tôi không sử dụng ....
Martin Beckett

1
Trên các phiên bản Mac OS cũ, bạn có thể di chuyển bất kỳ tệp nào ở bất kỳ đâu, vì vậy có lẽ đó là những gì họ đang mong đợi ...
Kevin Cantu

18

Trở lại từ giữa đến cuối những năm 90, một người bạn của tôi và tôi đã thảo luận về sự điên rồ rm -rf *và tại thời điểm nào thì một hộp Linux sẽ trở nên tốt bụng. Chúng tôi đã vào các thư viện được liên kết tĩnh so với các thư viện được liên kết động và tôi đã khẳng định rằng hệ thống có thể sống khá tốt mà không cần phải /libtiến hành đổi tên nó trên máy trạm của tôi. Những điều tồi tệ đã xảy ra , nhưng chúng tôi bị bỏ lại với một số cửa sổ giao diện điều khiển mở để thử và khắc phục thiệt hại (tắt máy không còn là một lựa chọn nữa). Không ai trong số các biên tập viên sẽ chạy. Thật đáng kinh ngạc khi sử dụng bí truyền mà bạn có thể tìm thấy cho echolệnh.


19
Có một câu chuyện kinh điển về chủ đề chính xác này: lug.wsu.edu/node/414
Alex B

1
@Alex B: Câu chuyện cũng là một phần của Câu chuyện kinh dị Unix , rất hay để đọc.
Bobby

18

viCaps-Lockso với/etc/passwd

  1. Kết nối với hộp Solaris cũ bằng thiết bị đầu cuối nối tiếp cũ không làm mới màn hình chính xác.
  2. su -
  3. vi /etc/passwd. Không có vipw, và "chúng tôi chỉ đang thực hiện các chỉnh sửa nhỏ".
  4. Nhấn Caps-Lockphím và không để ý.
  5. Nhấn jmột vài lần để cuộn xuống. Bỏ qua thực tế là bạn thực sự vừa gõ J("Tham gia"), kết hợp dòng này với dòng tiếp theo. Màn hình thiết bị đầu cuối nối tiếp không được làm mới chính xác, vì vậy bạn không thấy rằng mình vừa kết hợp 5 dòng đầu tiên thành một dòng Loooooong, do đó làm hỏng 5 người dùng đầu tiên ('root', 'daemon', v.v.).
  6. Hoàn thành các chỉnh sửa dự định KHÁC của bạn vào tệp, đi xuống ở phía dưới.
  7. Lưu tập tin.
  8. Đăng xuất.

Tôi đã làm điều này một lần. Thật đáng ngạc nhiên, hệ thống vẫn hoạt động trong nhiều tháng. Cronjobs chạy tốt, không có lỗi nào nổi bật trong logfiles.

Chúng tôi đã không nhận thấy vấn đề này cho đến khi chúng tôi khởi động lại hệ thống nhiều tháng sau đó và không thể đăng nhập tại bảng điều khiển. pscho thấy một loạt các công việc thuộc sở hữu của UID '0' không phải bởi người dùng 'root'.

Bạn không thể đăng nhập với quyền root, cũng không chạy suhoặc su -không có sudotrong hộp này. Không có ổ đĩa mềm, CD-ROM đã bị hỏng và không có cổng USB (vì vậy không có CD-ROM bên ngoài). Chế độ một người dùng không hoạt động, bởi vì bạn cần nhập mật khẩu cho root và xuất phát từ đó /etc/passwd.


2
Chắc chắn "J" là lệnh "Tham gia" (như trong các dòng nối với nhau)?
dr-jan

2
Đợi một chút, tôi không cần nhập mật khẩu để khởi động vào chế độ người dùng. Trong thực tế đó là cách tôi đặt lại mật khẩu root nếu tôi mất nó. Hay nó đã khác xưa?
phunehehe

Trên Solaris, bạn cần biết mật khẩu root để vào chế độ người dùng. Tôi đã phải làm điều này 2 tuần trước thực sự.
Stefan Lasiewski

@phunehehe Tôi nghĩ rằng suy nghĩ của bạn về init = / bin / sh trick. Điều đó thực sự không yêu cầu mật khẩu root. Tuy nhiên runlevel 1 vẫn không yêu cầu root
Patrick

18
rm -f * ~

rm -rf ${DIR}/

khi DIRchưa được thiết lập


4
Ý bạn là ${DIR}sao? Bởi vì $(DIR)sẽ cố gắng thực hiện lệnh DIR.
Denilson Sá Maia

16

Tôi nhớ đã cố gửi một SysRqchuỗi khóa đến một máy từ xa ...

... nhưng nó đã bị bắt bởi một người địa phương.


14

Một cách đơn giản haltnhận ra vài giây sau đó tôi không ở trong vỏ cục bộ và không có khả năng bật lại máy chủ sản xuất.

Bài học rút ra? Dấu nhắc của máy bây giờ giống như

[ --> root <-- @kompost:/home/echox] #

với một số đánh dấu màu đỏ đẹp ;-)


6
Có một công cụ được gọi là molly-guardkiểm tra xem bạn có đăng nhập từ xa không và hỏi xem bạn có thực sự muốn làm việc này không.
Simon Richter

IPMI là một thứ thực sự tiện lợi cần có :-)
Andre Holzner

13

Khoảnh khắc yêu thích của tôi là, khi một đồng nghiệp, một người dùng emacs, muốn chỉnh sửa một tập tin quan trọng.

emacsquá nhiều để gõ, anh ta đã thiết lập một bí danh cho emacs:

alias em=emacs

Dưới ảnh hưởng của không đủ hoặc quá nhiều cà phê, tất nhiên anh ta đã gõ sai em...

Chà, đây chỉ là một lý do khác để sử dụng vi...;)


Điều tôi thực sự yêu thích ở đây là sự thật rằng anh ấy quan tâm đến việc emacs đã bao lâu nhưng không chỉ sử dụng alias e=emacs.
Steven D

Ngoài cà phê, lưu ý rằng 'e' và 'r' không ở rất xa trong bàn phím ...
leonbloy

11

Hoặc một trải nghiệm khác, làm thế nào để cảm thấy thực sự ngu ngốc trong một vài bước đơn giản mà dường như tất cả đều ngu ngốc.

Bước một: thiết lập một tài khoản cho đứa trẻ, trong trường hợp nó muốn sử dụng hộp Linux. Cung cấp cho nó một mật khẩu tầm thường, vì sau tất cả, đây là một hệ thống gia đình và không được tiếp xúc với mạng.

Bước hai: cho phép thời gian trôi qua, vì vậy bạn không nhớ bước một.

Bước ba: mở cổng SSH trong tường lửa (thực ra là NAT trên bộ định tuyến) để ssh. Sau tất cả, tài khoản của tôi có mật khẩu khá tốt và không có gì có giá trị to lớn.

Bước bốn: nhận thông báo từ ISP rằng có một số loại hoạt động DOS sẽ đến một trang web của Thụy Điển. Giả sử có lẽ các hộp Windows, kiểm tra và làm cứng chúng.

Bước năm: nhận thông báo từ ISP rằng nó vẫn đang diễn ra. Hỏi một số chi tiết, lấy địa chỉ IP của trang web Thụy Điển, kích hoạt Wireshark, tìm hộp tấn công đến từ đâu.

Bước sáu: dọn sạch hộp Linux, cảm thấy ngu ngốc. Tìm thông tin đăng nhập đến từ một địa chỉ Rumani. Xóa tài khoản mà không có mật khẩu tốt.


1
Đã ở đó. Tôi đã từng tạo một tài khoản với thông tin đăng nhập thử nghiệm: thử nghiệm, dự định chỉ sử dụng nó trong khoảng năm phút. Tôi quên xóa nó và nhận được kết quả như bạn. Không bao giờ lặp lại. Bây giờ tôi đi tất cả các khóa công khai.
ATC

1
Vâng, tôi cũng sử dụng khóa công khai / riêng tư. Đôi khi chúng có thể hơi khó chịu, nhưng an toàn hơn nhiều so với mật khẩu đơn giản.
Denilson Sá Maia

4
Khi mở SSH lên internet, KHÔNG BAO GIỜ cho phép xác thực mật khẩu. Chỉ có khóa công khai / riêng tư, theo cách đó bạn không thể mất cảnh giác.
wazoox

@wazoox: otp cũng là một lựa chọn tốt.
Jürgen A. Erhard

Tôi sử dụng cổng không chuẩn, được đánh số cao cho ssh, được chuyển tiếp từ bộ định tuyến sang cổng ssh tiêu chuẩn trên các hộp Linux và Mac OS X của tôi. Tôi không bao giờ nhận được bất kỳ thông tin đăng nhập đã cố gắng. Tôi có cổng được cấu hình trong một phím tắt trong ~ / .ssh / config trên các máy khác của tôi vì vậy tôi thường không phải gõ nó.
Neil Mayhew

11

Trong phòng thí nghiệm máy tính khi tôi học đại học, họ có một trình bảo vệ màn hình mô phỏng một loạt các quả bóng sẽ trôi qua lại. Họ kéo nhau với trọng lực mô phỏng.

Một lần, trong khi tôi đang loay hoay với các cài đặt, nó đã bị lỗi với Error: force on balls too great


10

Tôi đã từng phát triển trình điều khiển thiết bị cho Unix. Nó có một vấn đề về con trỏ và trong quá trình thử nghiệm, nó bắt đầu ghi ra phần cuối của một mảng trong bộ nhớ kernel. Tôi đã chậm để phát hiện ra điều này và đã không nhấn nút thiết lập lại ngay lập tức. Trình điều khiển đã viết nguệch ngoạc trên tất cả các bộ đệm bộ đệm đĩa sau đó được xóa vào đĩa trước khi tôi nhấn thiết lập lại. Rất nhiều khối là inodes và thư mục, và tôi đã kết thúc với một hệ thống tập tin hoàn toàn bị hỏng. Tôi nghĩ rằng 6000 tập tin mồ côi đã được đưa vào lost+foundtrước khi tôi từ bỏ và cài đặt lại. May mắn thay, đây chỉ là một hệ thống thử nghiệm, không phải máy trạm của tôi với tất cả các tệp của tôi trên đó.


Bây giờ làm điều đó trên hệ thống làm việc của bạn sẽ thực sự ngu ngốc ;-)
Jürgen A. Erhard

8

Tôi đã xóa / vv và sau đó phục hồi nó . Tôi không nghĩ rằng tôi đã học được bài học của mình ... Tôi cũng đã phải phục hồi sau khi bị xóa /bin. Có vẻ như xảy ra khi tôi đã làm việc với a chroot.


Tôi rất muốn biết lý do tại sao tôi bị
hạ thấp

1
Tôi cũng đã được chứng kiến ​​điều này. Tôi ngạc nhiên rằng một hệ thống có thể tồn tại mà không cần / etc --- chỉ không khởi động lại bất cứ thứ gì.
Stefan Lasiewski

7

Năm ngoái, một đồng nghiệp của tôi đã sử dụng một trong các máy trạm linux của chúng tôi để tạo các bản sao của đĩa flash bằng ddlệnh. Anh vô tình gõ một cái gì đó tương tự như sau:

dd if=flash-image.img of=/dev/sda1

Đến lúc anh nhận ra lỗi lầm của mình - ghi đè lên đĩa cứng của máy thay vì ổ flash - máy đã bị ho. Chúng tôi đã phải xây dựng lại chiếc hộp, tình cờ cũng là cỗ máy lưu trữ tất cả các VM phát triển của chúng tôi vào thời điểm đó ...


2
+1 - hãy rất rất rất cẩn thận với dd!!! :-)
Josh

7

Điều này đã xảy ra với tôi năm ngoái. Tôi đã xóa một số tệp khỏi máy chủ bằng một biến tạm thời:

rm -rf ${prefix}*

Đoán xem cái gì? Biến $prefixkhông được xác định!
Bạn có thể tưởng tượng thảm họa ... nó đã dẫn đến một số tệp rất quan trọng bị xóa.

Tôi gần như đã phá vỡ Control-Cvà chạy đến CPU để tháo cáp mạng !!

Hahaha Tôi chắc chắn ai đó đã làm điều này ...


7

Trong năm thứ 2 tôi học ngành khoa học máy tính, chúng tôi đã được giao một bài tập về nhà để viết một chương trình bằng C sẽ sinh ra một số quy trình con forkvà khiến chúng giao tiếp với các đường ống trong một "vòng tròn" và tìm ra ai sẽ là "người lãnh đạo" ".

Lúc đó chúng tôi vẫn còn khá ồn ào và hầu hết mọi người đều không có máy Linux, vì vậy chúng tôi đã làm việc trên các tài khoản của chúng tôi trên máy chủ chính của khoa (nơi cũng đang lưu trữ trang web chính thức và tài khoản nhân viên cũng như trang web). Hầu hết mọi người đã viết những cái nĩa ở một số giai đoạn cố gắng làm bài tập về nhà. Hơn một nửa nhóm của tôi đã nhận được các abuserstập tin. Đó là tải cao nhất trên máy chủ đó trong một thời gian ngắn :)


điều đó thật ngớ ngẩn với họ ... họ không nên đưa bạn vào cùng một máy như máy chủ web và công cụ. (Trường học của tôi cũng có điều tương tự, nhưng chúng tôi có các máy chủ dành riêng cho đạn pháo từ xa nên những chiếc xe nâng hàng năm không thực sự vượt quá tầm tay)
Spudd86

Microsoft đã giúp các giảng viên hợp tác và các cửa sổ và .net đã được quảng bá rất nhiều sau đó. Không ai mong đợi một loạt các noobs trên máy chủ :)
naugtur

6

Khi trường đại học của tôi quyết định chuyển mạng không dây sang sử dụng xác thực Cisco LEAP độc quyền ...

Bắt đầu một trận chiến rất dài mà kết thúc cũng đủ. Đã viết tài liệu cho những người khác muốn chạy Linux và có quyền truy cập internet. Sáu tháng sau họ cũng quyết định bổ sung hỗ trợ PEAP. tát vào mặt

Đó là yêu thích của tôi vì tôi đã thắng. Tôi đã nhận nó để làm việc.


6

Là gốc trên Solaris,

$ kill -9 1

... Và mọi thứ đã đi xuống.

Bạn tôi đã bị sa thải vì điều này.


6

Tôi là trợ lý phòng thí nghiệm cho một lớp Linux. Một trong những học sinh gọi tôi vì cô ấy không còn có thể su -vì cô ấy đã nhận được permission denied. OK, cô ấy đã đánh giá sai / nhập sai mật khẩu. Khởi động lại vào chế độ người dùng đơn và đặt lại. Gì?! suVẪN không làm việc?! Nó PHẢI cúi đầu theo ý muốn của tôi! Vì vậy, tôi khởi động lại vào chế độ người dùng duy nhất để tìm hiểu những gì cô ấy đã làm. Tôi nhận ra rằng cô ấy đã chạychmod -R 777 /var/www/html/drupal-6.19 /

Lưu ý khoảng trắng giữa tên thư mục và dấu gạch chéo cuối cùng.

Sau vài phút "Tôi thực sự không muốn cài đặt lại cô ấy, vậy việc này đang làm gì và như thế nào.", Tôi đã tìm thấy / bin / su hiện có quyền truy cập tệp 777. Điều đó cũng có thể được đọc dưới dạng quyền của tệp 0777, loại bỏ bit setuid khỏi /bin/su. Nhanh chóng chmod u+s /bin/suvà tôi là một anh hùng.


5
Đó là điều duy nhất bạn cần thay đổi để phá vỡ hệ thống của cô ấy?
Michael Mrozek

1
Tôi chắc chắn rằng nó vẫn bị hỏng, nhưng có lẽ nó hoạt động đủ tốt cho phần còn lại của lớp.
Stefan Lasiewski

1
Nó đã làm việc đủ tốt cho phần còn lại của lớp học; trường rõ ràng có một yêu cầu rằng tất cả các ổ đĩa sinh viên phải được cài đặt lại mỗi quý. Và cô ấy đã không tiếp tục với Linux sau khi quý này kết thúc, vì vậy tôi không buồn sửa nó trong phần còn lại của con đường.
Kevin M

5

Không phải đau đớn ... Nhưng một khoảnh khắc vui vẻ:

Tôi đã gõ sai lsnhư slvà phát hiện ra rằng các quản trị hệ thống có một cái gì đó được cài đặt cho trường hợp này.

(đã có sẵn trong kho Debian , Ubuntu , Gentoo , ...)


4
Đó là một quả trứng Phục sinh nhiều hơn một khoảnh khắc đau đớn. Tôi đã đọc về nó trước khi tôi bắt gặp nó, nhưng tôi chưa bao giờ thấy mình nhầm lẫn điều đó, vì vậy không có +1.
Umang

Grinn .. Tôi đã có một người dùng đến với tôi "Hệ thống của bạn đã bị hack !!! 11 Tôi đã có một hoạt hình nghệ thuật ASCII khi tôi gõ ls"
blauwblaatje

^ Không vui lắm!
mr_eclair

5
git init
git clean -f

Điều này không loại bỏ các kho lưu trữ. Điều này loại bỏ tất cả mọi thứ không có trong kho lưu trữ.

Sau khi cố gắng loại bỏ repo hiện có và sau đó bắt đầu kiểm soát nguồn một lần nữa (trên phiên bản đầu tiên đã hoàn thành của một dự án), hai lệnh này đã gỡ bỏ toàn bộ mã của tôi.


git rebase (với squashing) và git filter-Branch (để xóa tệp) là bạn của bạn :-) Điều này có nghĩa là có những cách an toàn hơn để loại bỏ cruft khỏi lịch sử repo của bạn và kết thúc với một dự án tương đối sạch sẽ. Tôi thường tạo một bản sao lưu của chi nhánh hiện tại trước khi nổi loạn rộng rãi.
Neil Mayhew

5

Một công ty mà tôi từng làm việc đã có sản phẩm của mình chạy trên SCO. Tôi đã thực hiện một số sửa lỗi về các ứng dụng trở nên rất chậm trên máy chủ demo của chúng tôi và đồng thời có một nhóm khách hàng được cung cấp bản demo / bài giảng về các tính năng mới sắp tới.

Vì vậy, tôi đã chạy ứng dụng đã từng bị kẹt, đã thực hiện công cụ của mình trên đó để xác minh nguyên nhân gốc, nhưng vì nó vẫn bị "kẹt", tôi đã cố gắng giết nó:

pkill -9 mytestapplication

Những gì tôi đã học được là pkill không thực hiện chính xác như vậy trên SCO như trên linux =)

... Về cơ bản, nó giết chết mọi thứ mà người dùng có quyền truy cập và với root ... đó là tất cả mọi thứ =)


1
Bạn có thể vui lòng mô tả những gì nó làm trên SCO? Tôi không có ý tưởng và tôi không thể tìm thấy nó dễ dàng trên google.
Denilson Sá Maia

1
về cơ bản nó sẽ giết tất cả mọi thứ mà người dùng có quyền truy cập và với root .. mọi thứ của nó =)
ras camera

3

Việc chuyển đổi từ Debian sang Ubuntu bắt đầu vào ngày tôi cố gắng xóa một số tệp và thư mục, nghĩa là nhập

rm -r /var/tmp/*

Thật không may, tôi đã chèn một khoảng trắng giữa "/ var / tmp /" và "*" và thậm chí tệ hơn, tôi đã ở trong hệ thống tập tin gốc.

root@workstation:/# rm -r /var/tmp/ *

Xin đừng thử ở nhà!


'zsh: chắc chắn bạn muốn xóa tất cả các tệp trong / [yn]?' - nó khá hữu ích
André Paramés

Điều này sẽ xóa các tập tin từ / làm thế nào đến?
mr_eclair

3

Có một mẹo gọn gàng để làm tương đương dirnamebasename, tương ứng, trong Bash:

${path%/*}
${path##*/}

Không buồn cười lắm khi $pathchứa một dấu gạch chéo ...


3

Tôi đã có hai ổ đĩa được cài đặt tại một điểm và có hệ thống tập tin gốc của ổ đĩa thứ hai được gắn trong một thư mục bên trong /mnt. Tôi đã ở trong thư mục đó và cố gắng xóa varnhưng cuối cùng lại gõ rm -rf /var. Một số bản năng dường như đá trong đó nói rằng var phải được đi trước với một dấu gạch chéo!

Khi tôi nhận ra những gì tôi đã làm, tôi lập tức đánh Ctrl-Cnhưng đã quá muộn. rpmCơ sở dữ liệu của tôi đã rời khỏi tòa nhà từ lâu. Tôi đã dành nhiều năm để mọi thứ trở lại bình thường.

Bây giờ cho phần đau đớn.

Tôi quay lại thư mục đó trong /mnt để tiếp tục những gì tôi đã làm. Tôi gõ gì? Chà, hãy nói rằng bản năng lại bắt đầu.

Ít nhất tôi đã có thể khôi phục hệ thống nhanh hơn rất nhiều lần thứ hai;)


1
Tôi hiểu điều này là trước khi bạn phát hiện ra về chroot (1)?
Kevin M
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.