แก้ไขไฟล์บน CentOS แล้วขึ้น Error ว่า Operation not permitted

ผมได้ทำการแก้ไขไฟล์บน CentOS ครับ พอจะบันทึก กลับมี Error ว่า Operation not permitted

  • ผมแก้ไขไฟล์ sshd_config ครับ
    ** ใช้สิทธิ์ root ในการแก้ไขก็เป็นเหมือนเดิม
    *** ไม่สามารถทำการแก้ไข ลบ เปลี่ยนชื่อ อัพโหลดไฟล์ทับ ได้เลยครับ

รบกวนแนะนำวิธีแก้ไขหน่อยครับ

ls -al sshd_config

ขึ้นว่าอะไรครับ ลองตรวจสอบ permission ดูดีๆ

chmod +w sshd_config
แล้วลองแก้ไขใหม่อีกรอบครับ
เผื่อไม่มี permission write เลยแก้ไขไม่ได้ (เวลาทำ Hardending server บางที่ใช้ permission เป็น 400 ฮะ เวลาจะแก้ไขต้องมาเปลี่ยนก่อน)

เดาว่า filesystem มี error ระบบเลย remount read-only filesystem ไว้
ลองเช็คดูด้วยคำสั่ง
#mount

ถ้า / เป็น read-only ก็ลองดู error log ใน /var/log/message

ปกติวิธีแก้ก็คือ fsck ใน single user mode ที่หน้าเครื่อง (แนะนำให้ backup ข้อมูลสำคัญไว้ก่อน)

ขึ้นแบบนี้ครับ
-rw-r–r-- 1 root root 2450 Mar 21 2012 sshd_config

ไม่ได้เหมือนเดิมครับ พิมพ์คำสั่งแล้วขึ้นแบบนี้
chmod: changing permissions of `sshd_config’: Operation not permitted

ใช้คำสั่งแล้วได้ออกมาประมาณนี้ครับ

เป็นเครื่อง VPS ครับ

lsattr sshd_config

ถ้ามี ตัว i โผล่ใน list สั่ง chattr -i sshd_config แล้วลองแก้ใหม่ครับ

ไม่มีตัว i อย่างที่คุณ icez แนะนำมาครับ

ถ้าแก้ไขไฟล์ แล้วใช้คำสั่ง :wq ก็จะเป็นประมาณนี้ครับ

ลองเรียก vi ด้วยการ sudo แล้วลองแก้ไขดูครับ ว่าช่วยมั้ย

sudo vi /etc/ssh/sshd_config

ไม่ได้ครับ เป็นเหมือนเดิมเลย

แปลกจัง

permission ของ path เป็นยังไงครับ

ls -al /etc/ssh

ตามนี้ครับ

ดูจาก error คล้ายๆ กับกระทู้นี้
http://www.linuxquestions.org/questions/linux-server-73/cannot-modify-sshd_config-[operation-not-permitted]-718551/

เขาให้ลองใช้คำสั่งนี้ดูครับ chattr -ua sshd_config ว่าแต่สั่งแล้วมีผลยังไง เพื่ออะไร อันนี้ผมก็ไม่รู้เหมือนกัน :confused:

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

…แต่ก็ยังไม่สามารถแก้ไขไฟล์ในโฟเดอร์ที่เปลี่ยนชื่อไปได้เหมือนเดิม