ฉันพยายามเรียกใช้chmod -R 777 ./
แต่จบลงด้วยการพิมพ์chmod -R 777 /
และตั้งค่า777
บนเครื่องทั้งหมดของฉัน มีอะไรผิดพลาด? ฉันจะแก้ไขได้อย่างไร
ฉันพยายามเรียกใช้chmod -R 777 ./
แต่จบลงด้วยการพิมพ์chmod -R 777 /
และตั้งค่า777
บนเครื่องทั้งหมดของฉัน มีอะไรผิดพลาด? ฉันจะแก้ไขได้อย่างไร
คำตอบ:
ปัญหา? ใช่แล้ว สามารถแก้ไขได้หรือไม่ แน่ใจ เร็วกว่าการติดตั้งซ้ำหรือไม่ อาจจะไม่.
คำแนะนำของฉันคือการติดตั้งใหม่ เก็บสำรองของระบบที่มีอยู่และการกู้คืนรายชื่อแพคเกจและเนื้อหาของไฟล์ในและ/etc
/var
สำหรับ/usr/local
คุณอาจสามารถเรียกคืนการอนุญาตด้วยตนเอง สำหรับ/home
และ/srv
คุณจะต้องกู้คืนสิทธิ์จากการสำรองข้อมูล
หากนี่เป็นระบบที่มีผู้ใช้หลายคนโปรดทราบว่าการทำให้บางไฟล์ที่คนอ่านได้ทั่วโลกได้เปิดเผยสิ่งที่ควรเก็บเป็นความลับ
หากคุณต้องการลองซ่อม (มากกว่าแบบฝึกหัดการเรียนรู้มากกว่าเส้นทางการกู้คืนภาคปฏิบัติ) ให้คืนค่าสิทธิ์ของไฟล์บางไฟล์ก่อน โปรดทราบว่าในขณะที่ไฟล์ส่วนใหญ่เปิดอยู่เกินไปบิตsetuid ที่จำเป็นบางอย่างขาดหายไป นี่คือขั้นตอนที่คุณควรทำก่อนสิ่งอื่นใด โปรดทราบว่านี่ไม่ใช่รายการที่ครบถ้วนสมบูรณ์เพียงความพยายามในการทำให้ระบบทำงานได้แทบไม่
chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail
จากนั้นคุณจะต้องกู้คืนสิทธิ์ทั้งหมดทุกที่ สำหรับไฟล์ภายใต้/usr
คุณสามารถติดตั้งแพ็กเกจใหม่ด้วยคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้ขึ้นอยู่กับการกระจายของคุณ:
apt-get --reinstall install
pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacman
/newarch
สำหรับไฟล์ที่อยู่ด้านล่าง/etc
และใช้/var
ไม่ได้เนื่องจากไฟล์ส่วนใหญ่จะถูกทิ้งไว้ตามเดิม: คุณจะต้องทำซ้ำการอนุญาตในการติดตั้งที่ใช้งานได้ สำหรับไฟล์ที่อยู่ด้านล่าง/srv
และ/home
คุณจะต้องกู้คืนจากการสำรองข้อมูล อย่างที่คุณเห็นคุณอาจติดตั้งเช่นกัน
คุณอาจไม่สังเกตเห็นมันในตอนแรก แต่สิ่งต่าง ๆ มากมายสามารถและจะผิดไป ปัญหาหลักคือรูปแบบความปลอดภัยทั้งหมดสำหรับทั้งระบบเสียหาย มันเหมือนกับมีร่างกายที่ไม่มีผิวหนังอวัยวะทั้งหมดอยู่ในอากาศ มันถูกผูกติดกับการติดเชื้อเพราะมันไม่ได้หมายความว่าทำหน้าที่อย่างนั้น แม้ว่ามันจะใช้งานได้สักครู่ แต่คุณต้องทำความสะอาด
วิธีที่ดีที่สุดคือเริ่มจากศูนย์ วิธีนี้จะช่วยลดความเสี่ยงของคุณได้อย่างมากและให้ผลลัพธ์ที่สะอาดกว่าในเวลาที่น้อยลง หากคุณมีการสำรองข้อมูลที่ถูกต้องสิ่งนี้ไม่ควรลองด้วยเช่นกัน
หากคุณพยายามทำความสะอาดวิธีหลักคือบอกให้ผู้จัดการแพ็คเกจของ distro ติดตั้ง EVERYTHING ทุกอย่างในระบบรวมถึงเขียนทับไฟล์กำหนดค่า จากนั้นใช้ระบบตรวจสอบอะไรก็ตามที่มีการตรวจสอบพวกเขาและตรวจสอบให้แน่ใจว่าไม่มีพวกเขาถูกตั้งค่าสถานะว่ามีไฟล์ที่มีสิทธิ์ออกจากสามัญ จากนั้นทำงานผ่านสิ่งต่างๆเช่นไดเรกทอรีบ้านของผู้ใช้และรีเซ็ตทุกอย่างให้มีสิทธิ์ใช้งานอย่างสมบูรณ์จากนั้นทำบางสิ่งที่ควรมีสิทธิ์พิเศษ (เช่นไฟล์คีย์ ssh) สุดท้ายทำระบบทั้งหมดค้นหาทุกสิ่งที่ทำเครื่องหมายเป็น 777 และทำรายการ (ควรเล็กถ้าคุณทำขั้นตอนอื่น ๆ อย่างละเอียด) และทำงานผ่านพวกเขาทีละคนทำให้แน่ใจว่าพวกเขาควรจะเป็น
การแก้ไข: ฉันทดสอบสิ่งนี้ในเซ็นโตส
ผู้ชายคนนี้บันทึกงานของฉัน! (คุณจำเป็นต้องเข้าถึงอย่างใด)
http://www.adminlinux.org/2009/07/how-to-restore-default-system.html
1) เพื่อรีเซ็ต uids และ gids บนไฟล์และไดเรกทอรี:
for u in $(rpm -qa); do rpm --setugids $u; done
2) การอนุญาตในไฟล์และไดเรกทอรี
for p in $(rpm -qa); do rpm --setperms $p; done
จากนั้นเปลี่ยนการอนุญาตด้วยตนเองเป็นไฟล์เหล่านี้:
# ll /etc/ssh/
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_dsa_key
# service sshd restart
บางโปรแกรมที่คำนึงถึงความปลอดภัยจะไม่เริ่มทำงานหากไฟล์บางไฟล์มีการอนุญาตแบบ "หลวม" เกินไป ตามที่ @ceving กล่าวว่าsshd
เป็นเรื่องปกติที่สุด
สิ่งสำคัญที่ผิดพลาดคือตอนนี้ผู้ใช้สามารถเปิดอ่านและเขียนไฟล์ใด ๆในระบบของคุณ เหตุผลสองประการที่ทำให้ระบบไม่ดีคือ: ก) หากผู้ใช้ที่ประสงค์ร้ายได้รับการควบคุมระบบของคุณผ่านการหาประโยชน์หรือการกำหนดค่าผิดพลาดเขา / เธอสามารถแก้ไขอะไรก็ได้ในระบบของคุณตอนนี้และ B) คุณสามารถลบสิ่งที่คุณต้องการได้ คุณไม่ได้เป็นรูทดังนั้นคุณจึงไม่ได้รับการปกป้องมากที่สุดว่าไม่ได้ทำงานในฐานะรูท
หากคุณไม่ได้สำรองสิทธิ์ไว้ล่วงหน้าคุณจะตกอยู่ในสถานการณ์เล็กน้อย คุณอาจจะสามารถสร้างสคริปต์ที่ "ดึง" รายการสิทธิ์จากระบบที่ติดตั้งใหม่แล้ว "นำ" ไปใช้กับทุกสิ่งในระบบของคุณ แม้ว่าฉันจะไม่มีสคริปต์ดังกล่าวที่มีประโยชน์
rm -rf /
เป็นผู้ใช้ปกติในตอนนี้คุณจะต้องหยุดระบบของคุณ