สิ่งที่คุณโปรดปราน * เจ็บปวด * ช่วงเวลา Unix


34

วิธีการเกี่ยวกับการแบ่งปันที่คุณชื่นชอบการเรียนรู้ช่วงเวลา?


ตลกกี่คำตอบที่เกี่ยวข้องกับrmคำสั่ง หรือเศร้า
Barry Brown

คำตอบ:


67

ฉันอยากรู้อยากเห็นถ้า chmod 000 /จะทำงาน

ดีไม่มีที่ติ ไม่กี่นาทีต่อมาฉันกำลังค้นหาซีดีช่วยเหลือ


11
ว้าวฉันไม่เคยคิดเช่นนั้นจนกว่าคุณจะพูดถึงมัน สิ่งที่ดี.
Stefan Lasiewski

จะเกิดอะไรขึ้นถ้าคุณทำไฟล์ปกติ?
Luc M

@Luc ผมคิดว่าคุณเพียงแค่ต้อง chmod มันกลับ
phunehehe

ฉันมักจะทำการทดลองใน Arch VM ของฉัน ถ้ามันระเบิดฉันแค่หมุนมันกลับ
AndréParamés

ฉันทำผิดครั้งเดียว มันน่าอายมาก แต่เป็นบทเรียนที่มีค่า
Charles Sprayberry

37

เมื่อฉันเริ่มทำงานในฐานะที่ปรึกษาผู้ใช้สำหรับมหาวิทยาลัยที่ฉันเข้าร่วมฉันได้รับsudoสิทธิ์อย่าง จำกัดในการช่วยเหลือนักเรียนที่ลืมรหัสผ่าน sudo passwd <username>เป็นเพื่อนใหม่ของฉัน หนึ่งชั่วโมงหลังจากการปฐมนิเทศของฉันความอยากรู้ของฉันได้ดีกว่าของฉันและฉันก็พิมพ์sudo passwdและจ้องมองด้วยความกลัวที่พร้อมท์สำหรับรหัสผ่านใหม่ ฉันค่อนข้างกลัวที่จะ^Cออกไปจากที่นั่นคิดว่า (ไม่สุภาพกลับกลายเป็นว่า) ฉันอาจทิ้งบัญชีที่เป็นปัญหาในสถานะชั่วคราวดังนั้นฉันจึงป้อนรหัสผ่านและเดินขึ้นไปบนโดเมนชั้น 2 อันศักดิ์สิทธิ์ของฉันทันที วิทยาเขต SuperUser และถามว่าเขาต้องการทราบรหัสผ่านรูทของระบบหลักหรือไม่


4
เฮ้เป็นเจ้าของ! ผู้ช่วยสับสน: P
Spudd86

30
คุณสามารถป้อนรหัสผ่านที่ไม่ตรงกันในการยืนยันครั้งที่ 2 ดังนั้นจะไม่มีอะไรได้รับผลกระทบใด ๆ จากนั้นรหัสผ่านจะออก
Wadih M.

1
@Wadih: passwdประพฤติตัวตลกเมื่อทำงานเป็นราก ตัวอย่างเช่นเมื่อล้มเหลวในการตรวจสอบการพิมพ์ผิดมันจะถามอีกครั้ง
György Andrasek

คุณสามารถเปลี่ยนมันกลับไปเป็นเหมือนเดิมได้
HandyGandy

1
@ AndyGandy เขาไม่ทราบรหัสผ่านรูตดั้งเดิม เขามีสิทธิ์ในการเรียกใช้ passwd
gnud

32

แปลกใจที่ไม่มีใครพูดถึงสิ่งนี้อีกแล้ว:

rm -rf .*

(ในขณะที่พยายามที่จะลบไฟล์และไดเรกทอรีย่อยที่ซ่อนอยู่ทั้งหมดลืมไปว่ามันจะถูกคืนสู่.และ..)


3
ในขณะที่เคยเผาฉันในอดีตหลายรุ่นrmจะไม่ทำอย่างนั้นในขณะนี้ rm: "." and ".." may not be removedฉันพยายามดาร์วินและมีข้อผิดพลาด
Stefan Lasiewski

7
ฉันทำเช่นนั้นตลอดเวลาบนแพลตฟอร์มทุกชนิด ทำงานได้ตามที่ต้องการใน OpenBSD, NetBSD, Linux และ OpenSolaris
polemon

ถ้าคุณต้องการเพื่อให้ตรงกับ dotfiles ทั้งหมดยกเว้น.และการใช้งาน.. .[^.]*(อย่างนี้จริงจะพลาดไฟล์ทั้งหมดที่เริ่มต้นด้วย..แต่มักจะมีเพียงหนึ่ง.)
สเวน Marnach

@Sven: อีกวิธีหนึ่งคือ.??*ฉันพิมพ์ง่ายขึ้น อันนี้จะไม่ตรงกับไฟล์ dot สองตัวอักษรเช่น.aกัน แต่มันก็ผิดปกติเหมือนกัน ฉันค้นหาไฟล์ปรับแต่งในไดเรกทอรีบ้านของฉันด้วยgrep -r .??*เช่น
Neil Mayhew

31

Makefile:

clean:
    @rm -f * .o

ซึ่งแน่นอนทำให้การmake cleanเช็ดซอร์สโค้ดของคุณแทนที่จะเป็นเพียงวัตถุไฟล์

บทเรียน: ใช้การควบคุมเวอร์ชัน


11
หากคุณมองไม่เห็นให้สังเกตอักขระช่องว่างระหว่าง*และ.o
Denilson Sá Maia

1
ฉันรู้สึกเจ็บปวดของคุณที่เกิดขึ้นกับเราทุกคนในบางจุด :)
axel_c

บทเรียนโหลดใหม่: เมื่อใดก็ตามที่คุณทำสิ่งที่เปลือกและคุณเห็น " " เป็นพิเศษ *ไม่มีเป็นพิเศษ Extra EXTRAระมัดระวัง
Jürgen A. Erhard

ฉันทำอย่างนั้นด้วยมือหลังจากดึงสิ่งต่าง ๆ ในห้องแล็บ โครงการมีกำหนดไม่กี่ชั่วโมงต่อมา มันกลายเป็นพรในการปลอมตัว เวอร์ชันที่เขียนใหม่ซึ่งฉันเปิดใช้นั้นดีกว่าเวอร์ชันที่ใช้ผ้าพันแผลที่ฉันลบไปมาก
Barry Brown

1
ภาระผูกพัน Bumblebee อ้างอิง: github.com/MrMEEE/bumblebee/commit/a047be
Residuum

30

มีเพื่อนที่ทำงาน:() { :|:&}; :บนเซิร์ฟเวอร์ระยะไกลที่เราไม่สามารถเข้าถึงคอนโซลได้ ไม่สามารถรีบูตเซิร์ฟเวอร์ที่ใช้งานจริงทั้งหมด

แยกย่อย (ตามคำขอ) เพื่อให้อ่านได้ง่ายขึ้น

:() # 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 ':'

มันอาจจะง่ายกว่าที่จะดูเป็น

bomb() { bomb|bomb& }; bomb

1
คุณจะกรุณาอธิบายว่ามันทำอะไรได้บ้าง? ฉันคิดออกไม่ออกและไม่อยากลอง;)
naugtur

23
ดูเหมือนระเบิดส้อม อย่าลองทำสิ่งนี้หากคุณไม่รู้ว่ากำลังทำอะไรอยู่
Zaid

5
ได้. มันเป็นทางแยก และเป็นคนดี :) ดูเหมือนว่าจะใช้ล่ามทุบตีตามที่มันพยายามแยกวิเคราะห์มันอย่างไม่รู้จบ หากคุณข้ามไป:มันจะไม่ทำอะไรเลย และมันไม่ได้ใช้หน่วยความจำเลยเพียงแค่ส้อมมาก [ใช่ฉันลองแล้ว :)] เอฟเฟกต์สามารถบล็อกด้วยโควต้าจำนวนกระบวนการต่อผู้ใช้
naugtur


4
+1 สำหรับความคิดเห็นข้างต้น เข้าใจง่ายกว่าที่คิด
Umang

29

ฉันตั้งใจจริง ๆ พยายามจะchmodซ้ำไดเรกทอรีและจบลงด้วยการแลกเปลี่ยนกับ.//

ในฐานะที่เป็นรากของหลักสูตรเพราะมีเพียงความเจ็บปวดที่แท้จริงเท่านั้นที่สามารถบรรลุความสำเร็จได้


23
+1 สำหรับ quotable "เฉพาะกับรากเท่านั้นที่สามารถเจ็บปวดได้จริง (และทำให้เกิดการตรัสรู้)"
Stefan Lasiewski

21

ฉันเช็ดตารางพาร์ทิชันของไดรฟ์หลักของฉันโดยไม่ได้ตั้งใจคิดว่าฉันกำลังทำงานกับไดรฟ์อื่น

ด้วย scrollback, การใช้งานอย่างระมัดระวังdf, หน่วยความจำและโชคฉันสามารถสร้างมันขึ้นมาใหม่เขียนใหม่รีบูตและหวังว่า ... และมันก็ใช้ได้


6
เพื่อนทำสิ่งนี้และฉันช่วยเขาคืนค่าโต๊ะ น่าเสียดายที่เราไม่ได้มีค่าก่อนหน้านี้สำหรับขนาดพาร์ติชันและออฟเซ็ตดังนั้นเราจึงใช้ bash loop กับddการอ่านบล็อก 4k แรกของทุก cylinder ที่ส่งเข้าไปfile -เพื่อค้นหา superblock และเป็นการเริ่มต้นของระบบไฟล์ นี่เป็นซีดีสดและมี RAM ไม่เพียงพอที่จะทำทุกสิ่งที่เราต้องทำ (ซึ่งรวมถึงการติดตั้งแพคเกจหรือสอง) ดังนั้นเราจึงส่งไปยังกระบวนการที่ทำงานใน ssh บนเครื่องอื่น
Neil Mayhew

2
อุ๊ยตาย นั่นเป็นเหตุผลที่ฉันมักsfdisk -Oจะสำรองตารางพาร์ทิชันเสมอ FYI: cgsecurity.org/wiki/TestDiskสามารถทำให้สิ่งที่ @Neil Mayhew ทำโดยอัตโนมัติได้
ephemient

2
ฉันอยู่ที่นั่นด้วยtestdiskช่วยชีวิตฉันไว้ในกล่อง
phunehehe

วันนี้เรามีgpartซึ่งมองหาสิ่งที่อาจมีลักษณะคล้ายกับระบบไฟล์และสร้างตารางพาร์ทิชันจากที่
Simon Richter

19

ไม่ใช่ช่วงเวลาของฉัน แต่เป็นของคนอื่น

ย้อนกลับไปเมื่อฉันทำงานที่ศูนย์วิจัยวิทยาศาสตร์นิวเคลียร์เราเคยใช้คอมพิวเตอร์ SunOS, Ultrix และ Linux จำนวนหนึ่งและนักวิจัยก็ต้องแชร์ CPU บนเครื่องเหล่านั้น เมื่อกลุ่มวิจัยแต่ละกลุ่มได้รับทุนวิจัยของตนเองพวกเขาซื้อคอมพิวเตอร์เป็นของตัวเองส่วนใหญ่ SparcStations และพวกเขาทำการบริหารระบบด้วยตนเอง

SunOS เคยใช้กับเดสก์ท็อป OpenView และเป็นตัวจัดการไฟล์ที่ดีนี่คือสิ่งที่ดูเหมือน: ข้อความแสดงแทน

นักวิจัยของเราส่วนใหญ่ทำงานเป็นรูทและมากกว่าหนึ่งครั้งเราต้องติดตั้งระบบปฏิบัติการใหม่เพราะมีคนตัดสินใจจัดระเบียบไดเรกทอรีรูทและย้าย / bin, / etc, / tmp และทุกอย่างที่ทำให้มุมมองไม่เป็นระเบียบ Trashcan หรือโฟลเดอร์ย่อย

ผู้ใช้รายอื่นเลือกที่จะจัดระเบียบไดเร็กทอรี / bin และลบคำสั่งใด ๆ ที่ไม่ทราบ

ผู้โชคดีมีการสำรองข้อมูลส่วนใหญ่ซื้อเทปไดรฟ์ แต่ไม่มีประเพณีในการสำรองข้อมูลด้วยตนเอง


11
จัดระเบียบไดเรกทอรีรากหรือไม่ จริงๆ? จริงๆ? sob
อเล็กซ์ B

41
TRWTF คือพวกเขาทำงานเหมือนรูทที่ศูนย์วิจัยวิทยาศาสตร์นิวเคลียร์!
กลับ

4
ภาพหน้าจอเย็น! ทำให้ฉันคิดถึงทุกอย่าง
เกบ

@ Alex - ดีมี VMUNIX นี้ไฟล์ขนาดใหญ่ที่ฉันไม่ได้ใช้ ....
มาร์ติน Beckett

1
เก่า Mac OS รุ่นคุณสวยมากสามารถย้ายไปได้ทุกไฟล์ใด ๆ ดังนั้นบางทีนั่นคือสิ่งที่พวกเขาคาดหวังว่า ...
เควิน Cantu

18

ย้อนกลับไปในช่วงกลางถึงปลายยุค 90 เพื่อนของฉันและฉันกำลังคุยกันถึงความเขลาrm -rf *และจุดที่กล่องลีนุกซ์จะหายไป เราได้เข้าสู่การเชื่อมโยงแบบคงที่และการเชื่อมโยงห้องสมุดแบบไดนามิกและฉัน posited ว่าระบบสามารถอยู่ได้ค่อนข้างดีโดยไม่ต้อง/libแล้วเปลี่ยนชื่อมันบนเวิร์กสเตชันของฉัน สิ่งเลวร้ายเกิดขึ้นแต่เราถูกทิ้งให้อยู่กับหน้าต่างคอนโซลแบบเปิดหลายหน้าต่างซึ่งต้องลองและแก้ไขความเสียหาย (การปิดระบบไม่ใช่ตัวเลือกอีกต่อไป) ไม่มีบรรณาธิการคนใดที่จะทำงาน มันเป็นเรื่องมหัศจรรย์ที่ผู้ลึกลับใช้คุณสามารถค้นหาechoคำสั่งได้


19
มีเรื่องราวคลาสสิกในหัวข้อที่แน่นอนนี้: lug.wsu.edu/node/414
Alex B

1
@Alex B: เรื่องนี้เป็นส่วนหนึ่งของUnix Horror Storiesซึ่งยอดเยี่ยมในการอ่าน
Bobby

18

viและCaps-Lockเทียบกับ/etc/passwd

  1. เชื่อมต่อกับกล่องโซลาริสเก่าโดยใช้เทอร์มินัลอนุกรมเก่าที่รีเฟรชหน้าจอไม่ถูกต้อง
  2. su -
  3. vi /etc/passwd. ไม่มีvipwและ "เรากำลังทำการแก้ไขเล็กน้อย" อย่างไรก็ตาม
  4. กดCaps-Lockปุ่มและไม่สังเกต
  5. กดjสองสามครั้งเพื่อเลื่อนลง ไม่สนใจข้อเท็จจริงที่ว่าคุณเพิ่งพิมพ์J("เข้าร่วม") ซึ่งรวมบรรทัดนี้เข้ากับบรรทัดถัดไป หน้าจอเทอร์มินัลอนุกรมไม่ได้รีเฟรชอย่างถูกต้องดังนั้นคุณไม่เห็นว่าคุณเพิ่งรวม 5 บรรทัดแรกเข้ากับสาย Loooooong หนึ่งบรรทัดดังนั้นจึงทำให้ผู้ใช้ 5 คนแรก ('root', 'daemon' ฯลฯ )
  6. เสร็จสิ้นการแก้ไข OTHER ที่ตั้งใจไว้ของคุณลงไปที่ด้านล่าง
  7. บันทึกไฟล์.
  8. ออกจากระบบ.

ฉันทำสิ่งนี้ครั้งเดียว น่าแปลกที่ระบบยังคงใช้งานได้เป็นเดือน Cronjobs วิ่งได้ดีไม่มีข้อผิดพลาดโดดเด่นในไฟล์บันทึก

เราไม่ได้สังเกตเห็นปัญหานี้จนกว่าเราจะรีบูตระบบในเดือนต่อมาและไม่สามารถลงชื่อเข้าใช้ที่คอนโซล psแสดงกลุ่มงานที่ UID เป็นเจ้าของ '0' ไม่ใช่โดยผู้ใช้ 'root'

คุณไม่สามารถเข้าสู่ระบบในฐานะรูทหรือรันsuหรือsu -และไม่มีsudoในกล่องนี้ ไม่มีฟล็อปปี้ไดรฟ์ CD-ROM ถูกจับและไม่มีพอร์ต USB (ดังนั้นจึงไม่มี CD-ROM ภายนอก) /etc/passwdโหมดผู้เดียวไม่ได้ทำงานเพราะคุณจะต้องพิมพ์รหัสผ่านสำหรับรากและที่มาจาก


2
แน่นอน "J" คือคำสั่ง "เข้าร่วม" (เหมือนในการรวมสายเข้าด้วยกัน)?
dr-jan

2
เดี๋ยวก่อนฉันไม่จำเป็นต้องพิมพ์รหัสผ่านเพื่อบูตเข้าสู่โหมดผู้ใช้คนเดียว ในความเป็นจริงนั่นเป็นวิธีที่ฉันจะรีเซ็ตรหัสผ่านรูทถ้าฉันทำมันหาย หรือแตกต่างกันในสมัยก่อน?
phunehehe

บน Solaris คุณต้องรู้รหัสผ่านรูทเพื่อเข้าสู่โหมดผู้ใช้คนเดียว จริง ๆ แล้วฉันต้องทำเมื่อ 2 สัปดาห์ที่แล้ว
Stefan Lasiewski

@phunehehe ฉันคิดว่าความคิดของคุณเกี่ยวกับเคล็ดลับ init = / bin / sh นั่นไม่จำเป็นต้องใช้รหัสผ่านรูท อย่างไรก็ตาม runlevel 1 ยังคงต้องการรูทพาส
แพทริค

18
rm -f * ~

และ

rm -rf ${DIR}/

เมื่อDIRไม่ได้ตั้งค่า!


4
คุณหมายถึง${DIR}อะไร เพราะ$(DIR)จะพยายามรันคำสั่ง DIR
Denilson Sá Maia

16

ฉันจำได้ว่าพยายามส่งSysRqลำดับที่สำคัญไปยังเครื่องระยะไกล ...

... แต่มันถูกจับโดยคนท้องถิ่น


14

ง่าย ๆ ที่haltรู้ว่าอีกไม่กี่วินาทีต่อมาฉันไม่ได้อยู่บนโลคัลเชลล์และไม่มีความเป็นไปได้ที่จะเปิดใช้งานเซิร์ฟเวอร์การผลิตอีกครั้ง

บทเรียนที่ได้เรียนรู้? พรอมต์ของเครื่องตอนนี้ดูเหมือน

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

ด้วยมาร์กอัปสีแดงที่ดี ;-)


6
มีเครื่องมือที่เรียกmolly-guardว่าตรวจสอบว่าคุณเข้าสู่ระบบจากระยะไกลและถามว่าคุณต้องการทำเช่นนี้หรือไม่
Simon Richter

IPMI เป็นสิ่งที่สะดวกมากที่จะมี :-)
Andre Holzner

13

ช่วงเวลาที่ฉันชอบคือเมื่อเพื่อนร่วมงานซึ่งเป็นผู้ใช้ emacs ต้องการแก้ไขไฟล์สำคัญ

เนื่องจากemacsพิมพ์มากเกินไปเขาจึงตั้งค่าชื่อแทนสำหรับemacs:

alias em=emacs

ภายใต้อิทธิพลของกาแฟไม่เพียงพอหรือมากเกินไปเขาแน่นอนพิมพ์ผิดem...

นี่เป็นอีกเหตุผลที่จะใช้vi... ;)


สิ่งที่ผมชอบเกี่ยวกับคนนี้เป็นความจริงที่ว่าเขาเป็นกังวลกับวิธีการ emacs นาน alias e=emacsแต่ไม่ได้ใช้เพียงแค่
Steven D

นอกเหนือจากกาแฟแจ้งให้ทราบว่า 'e' และ 'R' ไม่ได้ห่างไกลใกล้มากอยู่ในแป้นพิมพ์ ...
leonbloy

11

หรือประสบการณ์อื่นวิธีรู้สึกโง่จริงๆในไม่กี่ขั้นตอนง่ายๆที่ไม่ได้ดูว่าโง่ทุกที

ขั้นตอนที่หนึ่ง: สร้างบัญชีสำหรับเด็กในกรณีที่เขาต้องการใช้กล่อง Linux ให้รหัสผ่านเล็กน้อยเพราะหลังจากทั้งหมดนี้เป็นระบบโฮมและไม่ได้ถูกเปิดเผยในเน็ต

ขั้นตอนที่สอง: ให้เวลาผ่านไปดังนั้นคุณจำขั้นตอนที่หนึ่งไม่ได้

ขั้นตอนที่สาม: เปิดพอร์ต SSH ในไฟร์วอลล์ (จริง ๆ แล้ว NAT บนเราเตอร์) เพื่อที่จะ ssh ระบบบัญชีของฉันมีรหัสผ่านที่ดีมากและมันก็ไม่เหมือนมีอะไรที่มีค่ามหาศาล

ขั้นตอนที่สี่: รับการแจ้งเตือนจาก ISP ว่ามีกิจกรรม DOS บางประเภทที่ไปยังไซต์ภาษาสวีเดน สมมติว่าเป็นกล่อง Windows และตรวจสอบและทำให้แข็งขึ้น

ขั้นตอนที่ห้า: รับการแจ้งเตือนจาก ISP ว่ากำลังดำเนินการอยู่ ขอรายละเอียดบางส่วนรับที่อยู่ IP ของเว็บไซต์สวีเดนดับไฟ Wireshark ค้นหากล่องที่การโจมตีมาจาก

ขั้นตอนที่หก: ทำความสะอาดกล่อง Linux รู้สึกงี่เง่า ค้นหาการเข้าสู่ระบบมาจากที่อยู่โรมาเนีย ลบบัญชีที่ไม่มีรหัสผ่านที่ดี


1
เคยไปที่นั่น. ฉันเคยสร้างบัญชีด้วยการเข้าสู่ระบบการทดสอบ: ทดสอบตั้งใจที่จะใช้มันเพียงประมาณห้านาที ฉันลืมที่จะลบมันและได้ผลลัพธ์เช่นเดียวกับคุณ ไม่มีอีกครั้ง. ฉันไปกุญแจสาธารณะรับรองความถูกต้องทั้งหมดในขณะนี้
ATC

1
ใช่ฉันยังใช้กุญแจสาธารณะ / ส่วนตัว บางครั้งมันอาจน่ารำคาญนิดหน่อย แต่ปลอดภัยกว่ารหัสผ่านง่าย ๆ
Denilson Sá Maia

4
เมื่อเปิด SSH ไปยังอินเทอร์เน็ตไม่เคยอนุญาตการตรวจสอบรหัสผ่าน เฉพาะกุญแจสาธารณะ / ส่วนตัวรับรองความถูกต้องด้วยวิธีนี้คุณจะไม่สามารถถูกป้องกันได้
wazoox

@wazoox: otp เป็นทางเลือกที่ดีเช่นกัน
Jürgen A. Erhard

ฉันใช้พอร์ตที่มีหมายเลขไม่สูงมาตรฐานสำหรับ ssh ส่งต่อจากเราเตอร์ไปยังพอร์ต ssh มาตรฐานบนกล่อง Linux และ Mac OS X ของฉัน ฉันไม่เคยได้รับการพยายามเข้าสู่ระบบใด ๆ ฉันมีพอร์ตที่กำหนดค่าในทางลัดใน ~ / .ssh / config บนเครื่องอื่น ๆ ของฉันดังนั้นโดยปกติฉันไม่ต้องพิมพ์
Neil Mayhew

11

ในห้องแล็บคอมพิวเตอร์เมื่อฉันอยู่ในวิทยาลัยพวกเขามีโปรแกรมรักษาหน้าจอที่จำลองลูกบอลหลายลูกที่จะลอยไปมา พวกเขาดึงแต่ละคนด้วยแรงโน้มถ่วงจำลอง

ครั้งหนึ่งในขณะที่ฉันกำลังยุ่งกับการตั้งค่ามันก็ล้มเหลวด้วยข้อผิดพลาด Error: force on balls too great


10

ฉันเคยพัฒนาไดรเวอร์อุปกรณ์สำหรับ Unix มันมีปัญหาตัวชี้และในระหว่างการทดสอบก็เริ่มที่จะเขียนออกจากจุดสิ้นสุดของอาร์เรย์ในหน่วยความจำเคอร์เนล ฉันพบจุดนี้ช้าและไม่ได้กดปุ่มรีเซ็ตทันที คนขับได้เขียนดิสก์แคชบัฟเฟอร์ซึ่งถูกลบไปยังดิสก์ก่อนที่ฉันจะรีเซ็ต บล็อกจำนวนมากเป็น inodes และไดเร็กตอรี่และฉันก็ลงเอยด้วยระบบไฟล์ที่ถูกทิ้งทั้งหมด ฉันคิดว่ามีไฟล์ของเด็กกำพร้า 6,000 ไฟล์lost+foundก่อนที่ฉันจะเลิกและติดตั้งใหม่ โชคดีที่นี่เป็นเพียงระบบทดสอบไม่ใช่เวิร์กสเตชันของฉันที่มีไฟล์ทั้งหมดอยู่


ตอนนี้การทำเช่นนั้นในระบบการทำงานของคุณคงจะโง่มากจริงๆ ;-)
Jürgen A. Erhard

8

ฉันลบ / ฯลฯ และกู้คืนแล้วมัน ฉันไม่คิดว่าฉันเรียนรู้บทเรียนของฉัน ... ฉันต้องกู้คืนจากการลบ/binเช่นกัน chrootดูเหมือนว่าจะเกิดขึ้นเมื่อฉันได้รับการทำงานร่วมกับ


ฉันอยากรู้ว่าทำไมฉันถึงเสียใจมาก
xenoterracide

1
ฉันเคยเป็นพยานในเรื่องนี้เช่นกัน ฉันประหลาดใจที่ระบบสามารถอยู่รอดได้โดยไม่ต้อง / etc --- เพียงแค่ไม่รีสตาร์ทอะไร
Stefan Lasiewski

7

ปีที่แล้วเพื่อนร่วมงานของฉันใช้หนึ่งในเวิร์กสเตชัน linux ของเราเพื่อสร้างสำเนาของดิสก์แฟลชโดยใช้ddคำสั่ง เขาพิมพ์สิ่งที่คล้ายกับสิ่งต่อไปนี้โดยไม่ตั้งใจ

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

เมื่อถึงเวลาที่เขาตระหนักถึงความผิดพลาดของเขา - เขียนทับฮาร์ดดิสก์ของเครื่องแทนที่จะเป็นแฟลชไดรฟ์ - เครื่องถูก hosed ไว้แล้ว เราต้องสร้างกล่องขึ้นมาใหม่ซึ่งบังเอิญเป็นเครื่องจักรที่โฮสต์ VM ทั้งหมดของเราในเวลานั้น ...


2
1 - มากมากมากระวังด้วยdd!!! :-)
Josh

7

เรื่องนี้เกิดขึ้นกับฉันเมื่อปีที่แล้ว ฉันลบบางไฟล์ออกจากเซิร์ฟเวอร์โดยใช้ตัวแปรชั่วคราว:

rm -rf ${prefix}*

คาดเดาอะไร ตัวแปร$prefixไม่ได้ถูกกำหนดไว้!
คุณสามารถจินตนาการถึงความหายนะ ... ส่งผลให้มีการลบไฟล์สำคัญบางไฟล์

ฉันเกือบจะพังControl-Cและวิ่งไปที่ CPU เพื่อถอดสายเคเบิลเครือข่าย !!

ฮ่าฮ่าฮ่าฉันแน่ใจว่ามีคนทำสิ่งนี้ไปแล้ว ...


7

ในขณะที่ในปีที่ 2 ของฉันในการศึกษาวิทยาศาสตร์คอมพิวเตอร์เราได้รับมอบหมายให้ทำการบ้านเพื่อเขียนโปรแกรมใน C ที่จะวางไข่จำนวนของกระบวนการย่อยด้วยforkและทำให้พวกเขาสื่อสารกับท่อใน "วงกลม" และคิดว่าอันไหนควรเป็น "ผู้นำ "

เรายังไม่เห็นใครมาก่อนและคนส่วนใหญ่ไม่มีเครื่อง Linux ดังนั้นเราจึงทำงานกับบัญชีของเราบนเซิร์ฟเวอร์หลักของคณะ (ซึ่งเป็นโฮสต์เว็บไซต์ทางการและบัญชีพนักงานและเว็บไซต์ด้วย) คนส่วนใหญ่เขียน forkbombs ในบางช่วงของการพยายามทำการบ้าน กลุ่มของฉันมากกว่าครึ่งไปถึงabusersไฟล์แล้ว นั่นคือโหลดสูงสุดบนเซิร์ฟเวอร์นั้นในเวลา looong :)


นั่นเป็นสิ่งที่โง่เขลาพวกเขา ... พวกเขาไม่ควรจะนำคุณเข้าสู่เครื่องเดียวกับเว็บเซิร์ฟเวอร์และสิ่งของ (โรงเรียนของฉันมีสิ่งเดียวกัน แต่เรามี severs ที่ทุ่มเทให้กับกระสุนระยะไกลดังนั้น forkbombs รายปีไม่ได้ออกจากมือจริงๆ)
Spudd86

ไมโครซอฟท์ได้คณะที่จะเข้าร่วมเป็นหุ้นส่วนและ windows และ. net ได้รับการส่งเสริมมากแล้ว ไม่มีใครคาดว่าจะมี noobs อยู่บนเซิร์ฟเวอร์ :)
naugtur

6

เมื่อมหาวิทยาลัยตัดสินใจเปลี่ยนเครือข่ายไร้สายให้ใช้การตรวจสอบสิทธิ์ Cisco LEAP ที่เป็นกรรมสิทธิ์ ...

เริ่มการต่อสู้ที่ยาวนานมากซึ่งจบลงด้วยดีพอ เขียนเอกสารสำหรับคนอื่น ๆ ที่ต้องการใช้งาน Linux และสามารถเข้าถึงอินเทอร์เน็ตได้ หกเดือนต่อมาพวกเขาตัดสินใจเพิ่มการสนับสนุน PEAP เช่นกัน ตบหน้า

ฉันชอบมากเพราะฉันชนะ ฉันได้มันไปทำงาน


6

ในฐานะที่เป็นรากบน Solaris

$ kill -9 1

... และทุกอย่างก็ลงไป

เพื่อนของฉันโดนไล่ออกเพราะเหตุนี้


6

ฉันเป็นผู้ช่วยแล็บสำหรับคลาส Linux นักเรียนคนหนึ่งของที่เรียกว่าผมมากกว่าเพราะเธอไม่สามารถเพราะเธอได้รับsu - permission deniedตกลงเธอพิมพ์ผิด / พิมพ์ผิดรหัสผ่าน รีบูตเข้าสู่โหมดผู้ใช้คนเดียวและรีเซ็ต อะไร?! suยังไม่ทำงานเหรอ! มันต้องกราบไหว้ต่อความประสงค์ของฉัน! ดังนั้นฉันรีบูตในโหมดผู้ใช้คนเดียวเพื่อค้นหาสิ่งที่เธอทำ ฉันรู้ว่าเธอวิ่งchmod -R 777 /var/www/html/drupal-6.19 /

หมายเหตุช่องว่างระหว่างชื่อไดเรกทอรีและเครื่องหมายทับสุดท้าย

หลังจากนั้นไม่กี่นาทีของ "ผมไม่ต้องการให้มีการติดตั้งของเธอดังนั้นนี่คืออะไรทำและวิธีการ." ฉันจัดการเพื่อพบว่า / bin / su 777ตอนนี้มีสิทธิ์ของแฟ้มของ ที่สามารถอ่านเป็นสิทธิ์ของแฟ้มของ0777ที่เอาบิต setuid /bin/suจาก อย่างรวดเร็วchmod u+s /bin/suและฉันเป็นฮีโร่


5
นั่นเป็นสิ่งเดียวที่คุณต้องเปลี่ยนเป็นการหยุดระบบของเธอ?
Michael Mrozek

1
ฉันแน่ใจว่ามันยังคงพังทลาย แต่อาจจะทำงานได้ดีพอสำหรับชั้นเรียนที่เหลือ
Stefan Lasiewski

1
มันทำงานได้ดีพอสำหรับชั้นเรียนที่เหลือ เห็นได้ชัดว่าโรงเรียนมีข้อกำหนดว่าจะต้องติดตั้งไดรฟ์นักเรียนใหม่ทุกไตรมาส และเธอก็ไม่ได้ทำงานกับลีนุกซ์หลังจากไตรมาสนี้จบลงดังนั้นฉันจึงไม่ต้องสนใจที่จะแก้ไขมัน
Kevin M

5

ไม่ว่าเจ็บปวด ... แต่เป็นช่วงเวลาที่สนุก ๆ :

ฉันได้พิมพ์ผิดlsเป็นslและพบว่าดูแลระบบได้บางสิ่งบางอย่างที่ติดตั้งสำหรับกรณีดังกล่าว

(มีอยู่แล้วในDebian , Ubuntu , Gentoo , ... ที่เก็บข้อมูล)


4
นั่นเป็นไข่อีสเตอร์มากกว่าช่วงเวลาที่เจ็บปวด ฉันอ่านเกี่ยวกับมันก่อนที่ฉันจะเจอ แต่ฉันไม่เคยพบว่าตัวเองพิมพ์ผิดดังนั้นจึงไม่มี +1
Umang

Grinn .. ฉันมีผู้ใช้ครั้งว่ามาให้ฉัน "คุณระบบกำลังจะถูกแฮ็ก !!! 11one ผมได้ภาพเคลื่อนไหว ASCII ศิลปะได้เมื่อฉันพิมพ์ LS"
blauwblaatje

^ ไม่ตลกเลย!
mr_eclair

5
git init
git clean -f

สิ่งนี้ไม่ได้ลบที่เก็บ สิ่งนี้จะลบทุกสิ่งที่ไม่ได้อยู่ในที่เก็บ

หลังจากพยายามกำจัด repo ที่มีอยู่แล้วเริ่มการควบคุมแหล่งที่มาอีกครั้ง (ในเวอร์ชันแรกที่สมบูรณ์ของโครงการ) คำสั่งสองคำสั่งเหล่านี้ทำให้โค้ดทั้งหมดของฉันสมบูรณ์


git rebase (พร้อม squashing) และ git filter-branch (สำหรับการลบไฟล์) คือเพื่อนของคุณ :-) จากนี้ฉันหมายความว่ามีวิธีที่ปลอดภัยกว่าในการลบ cruft ออกจากประวัติ repo ของคุณและจบลงด้วยโครงการที่ค่อนข้างสะอาด ฉันมักจะทำสำเนาสำรองของสาขาปัจจุบันก่อนที่จะทำการรีบูตอย่างกว้างขวาง
Neil Mayhew

5

บริษัท ที่ฉันเคยทำงานให้ผลิตภัณฑ์ของตนทำงานบน SCO ฉันกำลังทำการดีบักบางอย่างเกี่ยวกับแอปพลิเคชันที่ได้รับช้ามากบนเซิร์ฟเวอร์ตัวอย่างของเราและในขณะเดียวกันก็มีลูกค้าจำนวนมากที่ได้รับการสาธิต / บรรยายเกี่ยวกับคุณสมบัติใหม่ที่กำลังจะมาถึง

ดังนั้นฉันจึงรันแอปพลิเคชันที่เคยติดขัดทำสิ่งที่ฉันทำไว้เพื่อตรวจสอบสาเหตุที่แท้จริง แต่เนื่องจากมันยัง "ติดอยู่" ฉันจึงพยายามฆ่ามัน:

pkill -9 mytestapplication

สิ่งที่ฉันได้เรียนรู้ก็คือ pkill ไม่ได้ทำแบบเดียวกันกับ SCO เหมือนกับใน linux =)

... โดยพื้นฐานแล้วมันจะฆ่าทุกสิ่งที่ผู้ใช้สามารถเข้าถึงและด้วยรูท ... นั่นคือทุกอย่าง =)


1
คุณช่วยอธิบายเกี่ยวกับ SCO ได้ไหม? ฉันไม่มีความคิดและฉันไม่สามารถค้นหาได้อย่างง่ายดายบน google
Denilson Sá Maia

1
มันเป็นพื้นฆ่าทุกอย่างที่ผู้ใช้มีการเข้าถึงและมีรากของมัน .. ทุกอย่าง =)
rasjani

3

สวิตช์ของฉันจาก Debian เป็น Ubuntu เริ่มต้นวันที่ฉันพยายามลบไฟล์และไดเรกทอรีซึ่งหมายถึงพิมพ์

rm -r /var/tmp/*

น่าเสียดายที่ฉันแทรกช่องว่างระหว่าง "/ var / tmp /" และ "*" และยิ่งแย่กว่านั้นคือฉันอยู่ในรูทของระบบไฟล์

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

โปรดอย่าลองทำที่บ้าน!


'zsh: แน่ใจหรือไม่ว่าคุณต้องการลบไฟล์ทั้งหมดใน / [yn]?' - มันมีประโยชน์มาก
AndréParamés

จะเป็นการลบไฟล์ออกจาก / อย่างไร?
mr_eclair

3

มีเคล็ดลับเรียบร้อยในการทำเทียบเท่าdirnameและbasenameตามลำดับใน Bash:

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

ไม่ตลกนักเมื่อ$pathมีเครื่องหมายทับต่อท้าย ...


3

/mntฉันมีสองไดรฟ์ที่ติดตั้งในจุดหนึ่งและมีระบบแฟ้มรากของไดรฟ์ที่สองติดตั้งอยู่ในไดเรกทอรีภายใน ฉันอยู่ในไดเรกทอรีนั้นและพยายามลบvarแต่จบลงด้วยการพิมพ์rm -rf /varแทน สัญชาตญาณบางอย่างดูเหมือนจะเตะในที่กล่าวว่าvar จะต้องนำหน้าด้วยเฉือน!

เมื่อฉันรู้ว่าสิ่งที่ฉันทำฉันตีทันทีCtrl-Cแต่มันก็สายเกินไป rpmฐานข้อมูลของฉันมีความยาวตั้งแต่ออกจากอาคาร ฉันใช้เวลานานในการทำให้ทุกอย่างกลับมาเป็นปกติ

ตอนนี้สำหรับส่วนที่เจ็บปวด

ฉันกลับไปที่ไดเรกทอรีนั้น/mntเพื่อดำเนินการต่อในสิ่งที่ฉันทำ ฉันจะพิมพ์อะไร สมมุติว่าสัญชาตญาณเตะเข้ามาอีกครั้ง

อย่างน้อยฉันก็สามารถกู้คืนระบบได้เร็วขึ้นเป็นครั้งที่สอง;)


1
ฉันคิดว่านี่เป็นก่อนที่คุณจะรู้เรื่อง chroot (1)?
Kevin M
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.