“ chown -R root /” ฉันเมาแค่ไหน?


9

ฉันเผลอทำคำสั่ง chown -R root / ในขณะที่พยายามเปลี่ยนการอนุญาตไปยังโฟลเดอร์สาธารณะของแอพ Rails ของฉัน ฉันเชื่อว่าสิ่งนี้เปลี่ยนสิทธิ์ของโฟลเดอร์ทั้งหมดในไดเรกทอรี / ดังนั้นคำถามของฉันคือว่ามันอันตรายแค่ไหนในความเป็นจริงแล้วคำถามที่ดีกว่านี้คือมีการยกเลิกหรือไม่


3
สิ่งนี้ไม่สามารถยกเลิกได้โดยอัตโนมัติและใช่มันมีผลกระทบอย่างมากต่อระบบของคุณ (รวมถึง แต่ไม่ จำกัด เฉพาะโฮมไดเร็กตอรี่ต่างๆ) ฉันหวังว่าคุณจะมีข้อมูลสำรองที่มีประโยชน์ โชคดี.
Frédéric Hamidi

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

นอกจากนี้อ่านคำแนะนำที่ดีด้านล่างว่า "ไม่ตอบสนองในทางที่จะทำให้แย่ลง" และ "ไม่ถือว่าแย่ที่สุด" หรือจดจำขั้นตอนการแก้ไขปัญหาทั่วไปที่สำคัญเหล่านี้โดยใช้เวอร์ชันตลก: ผู้ให้บริการฉุกเฉิน: "อย่าตกใจคุณแน่ใจหรือว่าเพื่อนของคุณเสียชีวิต" ผู้โทร: BANG "ใช่น่าเศร้าเขาตายแล้ว"
minopret

ในกรณีส่วนใหญ่ในระบบปกติคุณควรจะสามารถบอกได้จากกลุ่มของไฟล์ที่เจ้าของควรเป็น ดังนั้นfindไฟล์ทั้งหมดที่เป็นของ root ซึ่งกลุ่มไม่เหมาะสมและ chown ไฟล์ทั้งหมดให้กับผู้ใช้ที่ตรงกับกลุ่ม บันทึกความล้มเหลวและจัดการกับพวกเขาเป็นรายบุคคล
agf

คุณรันคำสั่งนั้นในฐานะรูทหรือไม่? (ฉันหวังว่าจะไม่ ... )
Axel

คำตอบ:


7

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

เมื่อคุณได้รวบรวมการอนุญาตไฟล์เป็นไฟล์จากนั้นคุณสามารถเรียกใช้กระบวนการในระบบของคุณเองเพื่ออ่านไฟล์และ perms / ownerhips จากคนดีและแทนที่พวกเขา ฉันมีแอพที่ปลูกเองในบ้านขนาดเล็กบน Linux ที่ทำสิ่งนี้

เช่น

777*0*0*S*16*1334559119*1334532895*1361208513*/usr/lib32/*libgomp.so.1
644*0*0*F*67370*1359536382*1359374461*1359717843*/usr/lib32/*librt.a
644*0*0*F*59044*1334559119*1334532931*1355405098*/usr/lib32/*libgomp.so.1.0.0
644*0*0*F*1238*1359536382*1359374461*1359717843*/usr/lib32/*libBrokenLocale.a
777*0*0*S*17*1359536382*1359374460*1361208513*/usr/lib32/*libdl.so
644*0*0*F*905712*1334559116*1334533011*1355405098*/usr/lib32/*libstdc++.so.6.0.16
777*0*0*S*15*1333306601*1323929512*1361208513*/usr/lib32/*libbz2.so.1.0
777*0*0*S*24*1359536382*1359374460*1361208513*/usr/lib32/*libnss_files.so
644*0*0*F*1128*1359536382*1359374462*1359717843*/usr/lib32/*crt1.o

RWX * UID * GID * ไดเร็กทอรีอื่น ๆ * ชื่อไฟล์ *


5

ก่อนอื่นให้หยุดคำสั่งหากยังทำงานอยู่!

ตอนนี้ทุกอย่างจะเป็นของรูทและเป็นปัญหามาก

คุณควรพยายามกู้คืนข้อมูลจากข้อมูลสำรองล่าสุดของคุณ

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

โชคดี.


3

มากและไม่มาก

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

ในแง่ "ไม่มาก" - คุณแน่ใจหรือไม่ว่าคุณได้รับเมื่อคุณทำมันและคำสั่งผ่านไปยังจุดสิ้นสุดหรือไม่? หากคุณยกเลิกมันทันทีที่คุณเห็นคุณอาจโชคดีและการซ่อมแซมอาจต่ำ หากคุณไม่รูทคำสั่งนี้จะไม่สามารถทำได้เว้นแต่คุณจะทำเช่นsudo ...นั้น

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


2

อย่างน้อยใน Fedora คำสั่ง RPM มีตัวเลือก--setpermsและการ--setugidsใช้สิ่งเหล่านี้คุณสามารถแก้ไขไฟล์ส่วนใหญ่ของระบบrpm --setugids -aได้ ไปที่ (ค่อนข้าง) chown -R user /home/userแก้ไขไฟล์สำหรับผู้ใช้แต่ละคนที่คุณสามารถทำได้สำหรับแต่ละคน อาจมีของเหลือที่ไม่ได้รับการแก้ไขโดยด้านบนโดยเฉพาะถ้าคุณมีเซิร์ฟเวอร์บางประเภท (เว็บ, ftp, อื่น ๆ ) สิ่งเหล่านั้นจะต้องได้รับการจัดการทีละรายการ

การกระจายอื่น ๆ อาจมีกลไกที่คล้ายกัน หรือทำการฟื้นฟูอย่างเต็มรูปแบบ (เช่นติดตั้งทุกอย่างใหม่เช่นนั้นได้รับความเสียหายอย่างใด. ตกลงมันได้รับความเสียหายใด.)

[ใช่นี้เป็นอีกครั้ง Unix' วิธีที่ค่อนข้างโหดร้ายของการเรียนการสอนผู้ใช้ไม่สงสัยที่จะต้องพิจารณาแต่ละคำสั่งอย่างรอบคอบก่อนที่จะกด ENTER และจะใช้รากเท่าที่จำเป็น พิจารณาตัวเองสอน]


setuidและ setgidสิทธิ์จะต้องถูกตั้งค่าด้วยมือ rpmจะไม่คืนค่าพวกเขา
jnas

1

หากคุณใช้ OSX apple ของคุณจะมีคุณสมบัติการกู้คืนภายใน Disk Utilities เพื่อแก้ไขปัญหานี้ หากคุณใช้ลินุกซ์ distro ฉันค่อนข้างแน่ใจว่าคุณจะต้องทำซ้ำการอนุญาตทั้งหมดด้วยตนเอง ไม่ว่าในกรณีใดก็ตามตีมือของคุณและอย่าทำอีกครั้ง


อาจไม่สามารถกู้คืนได้อย่างสมบูรณ์จากสิ่งนี้บน Linux แม้ว่าคุณจะสามารถทำให้ระบบทำงานได้ แต่คุณอาจพลาดบางสิ่งที่อาจกลับมากัดคุณในภายหลังไม่ว่าจะเป็นความไม่มั่นคงหรือความเสี่ยงด้านความปลอดภัย ฉันจะบอกว่าวิธีการคืนค่าจากการสำรองข้อมูลหรือสร้างใหม่อาจจำเป็น
Chris Kuehl

0

น่าเสียดายที่ฉันไม่รู้วิธี "เลิกทำ" แต่คุณสามารถปล่อยให้ไฟล์ระบบเป็นของ root และกู้คืนไฟล์ทั้งหมดใน $ HOME ของคุณให้เป็นของคุณ (และทำเช่นเดียวกันสำหรับผู้ใช้ทั้งหมดของ ระบบ). ณ จุดนี้คุณสามารถแก้ไขการอนุญาตและ / หรือเจ้าของในแต่ละไฟล์ไม่ได้อยู่ในไดเรกทอรี $ HOME ที่ต้องการมันเมื่อมันมาถึง ใช่นี่เป็นความเจ็บปวด แต่ฉันไม่คิดว่าจะมีวิธีแก้ไขที่ง่าย นั่นคือสิ่งที่ฉันจะทำต่อไป


0

ฉันจะบอกว่าคุณ "เมา" สวยเหมือนที่คุณพูด วิธีที่ดีที่สุด (และมีประสิทธิภาพมากที่สุด) คือการติดตั้งและกู้คืนรายการสำคัญจากการสำรองข้อมูลที่ดีของคุณ ขออภัยนี่ไม่ใช่สถานการณ์ที่โดยทั่วไปจะมีการแก้ไขอย่างรวดเร็วด้วยการสิ้นสุดที่มีความสุข โชคดี!

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