sudo: ไม่สามารถ stat / etc / sudoers: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว - File Exists


12

ฉันเป็นหนึ่งในไม่กี่คนที่จัดการเซิร์ฟเวอร์เกม เซิร์ฟเวอร์กำลังใช้งาน Ubuntu 14.04 ซึ่งติดตั้งเมื่อ 3 สัปดาห์ก่อน

ทุกอย่างทำงานได้ดีจนกระทั่งไม่กี่วันที่ผ่านมาเรามีปัญหาเล็กน้อย ฉันสงสัยว่ามีบางคนที่ถูกแฮ็กเข้าสู่เซิร์ฟเวอร์ SSH ของเราและพยายามจัดการบางสิ่งบางอย่างที่ร้ายแรง

เมื่อฉันพยายามที่จะดำเนินการคำสั่งsudoฉันได้รับข้อผิดพลาดต่อไปนี้:

sudo: unable to stat /etc/sudoers: No such file or directory

ดังนั้นความคิดแรกคือไฟล์ถูกลบและเพิ่งจะถูกสร้างขึ้นใหม่ แต่ls /etc/แสดงให้เห็นว่าไฟล์ sudoers มีอยู่แล้ว นอกจากนี้เมื่อแก้ไขด้วย nano (ตัวแก้ไขที่ฉันต้องการ) จะเห็นได้ชัดว่าไฟล์นั้นอยู่ในรูปแบบที่ซับซ้อนและมีรูปแบบที่ถูกต้อง

ls -lยังแสดงให้เห็นว่าไฟล์ sudoers มีสิทธิ์-r--r----สำหรับผู้ใช้รูทและกลุ่มรูทซึ่งจากการวิจัยน่าจะเพียงพอสำหรับ sudo เพื่อให้สามารถอ่านไฟล์ได้เพื่อให้แน่ใจว่าฉันให้ไฟล์-rwxrwx---สำหรับรูทรากชั่วคราว(ใช้ tmux สำหรับเซสชัน การควบคุมและเรามีเซสชันเป็นรูทแล้ว) ยังคงล้มเหลว

ดังนั้นไฟล์ที่มีอยู่เนื้อหาภายในนั้นถูกต้องมันมีสิทธิ์ที่เหมาะสม มันจะเป็นอะไรอีก ฉันดูคนที่มีปัญหาคล้ายกันที่นี่ใน askubuntu.com วิธีหนึ่งที่ฉันพบว่าฟังดูมีความหวังคือการสำรองไฟล์ sudoers จากนั้นใช้: apt-get purge sudo apt-get install sudo

จากนั้นแทนที่ไฟล์ sudo ใหม่ด้วยไฟล์เก่า สิ่งนี้ไม่ได้ผล เพื่อแยกแยะให้ไกลกว่านั้นว่าไฟล์ sudoers ไม่มีข้อผิดพลาดฉันลองแก้ไขปัญหาอีกครั้งและลองใช้sudoงานไฟล์ sudoers ที่เพิ่งสร้างใหม่และได้รับข้อผิดพลาดเดียวกัน

-------- แก้ไข --------

สำหรับทุกคนที่สนใจว่าไฟล์ sudoers ที่ไม่มีอยู่ในนั้นควรมีอะไรต่อไปนี้เป็นเวอร์ชั่นที่ถูกกรอง (ชื่อผู้ใช้ที่กรอง) ตามคำขอ: http://paste.ubuntu.com/7781967/


1
ใช้paste.ubuntu.comคุณสามารถโพสต์เนื้อหาของไฟล์ sudoers (คุณอาจต้องการลบชื่อผู้ใช้สำหรับการรักษาความปลอดภัยที่เพิ่มขึ้น - ถ้าเซิร์ฟเวอร์ของคุณถูกแฮ็คเปลี่ยนรหัสผ่าน)
วิลฟ์

รหัสผ่านถูกเปลี่ยนแล้ว นั่นไม่ใช่ส่วนหนึ่งของคำถาม โพสต์ได้รับการปรับปรุงด้วยลิงค์ paste.ubuntu.com
D3_JMultiply

1
ตามหน้า man sudoersเครื่องหมายปอนด์ ('#') ใช้เพื่อระบุความคิดเห็น (ยกเว้นว่าเป็นส่วนหนึ่งของคำสั่ง #include หรือเว้นแต่จะเกิดขึ้นในบริบทของชื่อผู้ใช้และตามด้วยตัวเลขหนึ่งหลักหรือมากกว่านั้นใน ในกรณีนี้จะถือว่าเป็น uid) ในไฟล์ sudoers ของคุณมี # ที่ขาดหายไปในคำสั่ง includeir ลองเพิ่ม # และลองดูว่าคำสั่ง sudo ทำงานได้ไหม
Lety

Nope ที่ไม่ได้แก้ไขปัญหา อย่างที่ฉันบอกใน OP ฉันเปลี่ยนชื่อไฟล์ sudoers และติดตั้ง sudo ใหม่ซึ่งสร้างไฟล์ sudoers รุ่นที่ติดตั้งใหม่ และไฟล์นั้นก็ใช้ไม่ได้เช่นกัน ฉันรู้ว่าปัญหาไม่ใช่เนื้อหาของไฟล์เอง ขอบคุณ anyways :)
D3_JMultiply

คำตอบ:


9

ตกลง. ฉันได้แก้ไขปัญหาของฉันแล้ว และอย่างที่ฉันคิดมันไม่ใช่ไฟล์


วิธีการแก้

เมื่อ 10 นาทีที่แล้วฉันสังเกตเห็นว่า sudo ไม่ทำงาน เนื่องจากงานส่วนใหญ่ของฉันเกิดขึ้นใน tmux ฉันไม่เคยสังเกตเห็นบัญชีผู้ใช้ของฉัน

เมื่อเข้าสู่ระบบครั้งแรกฉันจะได้รับข้อผิดพลาดต่อไปนี้:

-bash: /etc/profile Permission denied

และมันจะทำให้ฉัน: I have no name@<ipaddress>เป็นบัญชีของฉัน

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

ปัญหาคือไฟล์ / etc / ของฉันไม่มีสิทธิ์ดำเนินการในกลุ่ม ดังนั้นการดำเนินการ: chmod g+x /etcแก้ไขปัญหาหลังจากออกจากระบบและกลับเข้ามาใหม่


ขอบคุณ

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

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