ไม่สามารถเข้าถึง / dev / null: ปฏิเสธการอนุญาตแม้ว่า crw-rw-rw- 1 รูทราก 1, 3 ก.ย. 21 12:05 / dev / null


11

เมื่อผู้ใช้ postgres:

$ ls -l /dev/null
ls: cannot access /dev/null: Permission denied

คิดในรูทผู้ใช้การอนุญาตถูกต้อง:

# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null

ฉันพยายามสร้างใหม่อีกครั้ง:

# rm /dev/null && mknod -m 0666 /dev/null c 1 3

แต่ผลลัพธ์ก็เหมือนกัน ฉันใช้ VPS พร้อมเดเบียน 7 และเคอร์เนล 2.6.32 ใน x86_64

คำตอบ:


18

ปัญหามาจากการอนุญาต / dev:

# ls -ld /dev
drwx------ 3 root root 4096 Sep 21 12:12 /dev

ดังนั้น / dev ไม่สามารถเข้าถึงได้โดยผู้ใช้

# chmod a+x /dev
# chmod a+r /dev

แก้ไขปัญหา


ดังนั้นฉันต้องการทราบว่าทำไมจึงมีสิทธิ์เหล่านั้น คุณอาจต้องการติดตั้งใหม่ ทุกอย่างใน / dev คือเคอร์เนลที่จัดการและมันแปลกที่มันจะมีสิทธิ์ที่ผิด
cripto

ไม่ทุกอย่างใน / dev ไม่ใช่ "เคอร์เนลที่จัดการ"
tlund

@tlund โปรดตรวจสอบเคอร์เนลหนังสือเล่มโปรดของคุณ ไดเรกทอรี "/ dev สะท้อนสถานะปัจจุบันของเคอร์เนล" doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/…
cripto

@ user1048138: ฉันต้องการทราบเช่นกัน ฉันเริ่มต้นจากการตั้งค่าเดเบียนอัตโนมัติ 7 จากผู้ให้บริการ VPS ของฉัน จากนั้นฉันอัปเดตอัปเกรดใช้เฉพาะ apt-get เท่านั้น บวกหนึ่งแพคเกจด้วย "มือ" ด้วย wget some_domain / some_package.deb ; dpkg -i some_package.deb; apt-get -f install ณ จุดหนึ่ง / dev / null ถูกเปลี่ยนเป็นไฟล์มาตรฐานและสิทธิ์ / dev เปลี่ยนไป ฉันไม่สามารถบอกได้มากกว่านี้
lalebarde

1

ฉันมีปัญหาที่คล้ายกันและมาที่นี่โดยค้นหาอาการ แต่วิธีการแก้ไขไม่เหมาะกับกรณีของฉัน ดังนั้นฉันต้องการเพิ่มอีกเหตุผลที่เป็นไปได้แม้ว่าจะไม่เหมาะสมกับ OP

ในกรณีพิเศษของฉันฉันใช้proot( chrootเสื้อคลุมดี) แต่สิทธิ์ที่ถูกต้องบน/dev/nullและ/devตัวเอง

มันเป็นภูเขาของchrootไดเรกทอรีซึ่งฉันทำผ่านthunarในฐานะผู้ใช้ปกติ ดังนั้นในกรณีนี้การเมาท์จึงไม่มีสิทธิ์ที่ถูกต้อง

คุณมีเวลาไม่ดีในการค้นหาสิ่งนี้เนื่องจากคุณไม่เห็นสิทธิ์เหล่านี้เมื่อดูเฉพาะไฟล์

เส้นทางการแก้ปัญหาทั่วไปคือการเริ่มต้นตรวจสอบเงื่อนไขที่ตำแหน่งปัญหา ( /dev/null) และก้าวไปสู่ระดับถัดไป ( /dev) จากนั้นติดตั้งระบบไฟล์ ฯลฯ ไม่ว่าจะเกิดอะไรขึ้น

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

เห็นได้ชัดว่าคุณต้องปฏิบัติตามต้นไม้ทั่วไป


0

ฉันไม่สามารถแก้ปัญหานี้ด้วยตัวเองได้ดังนั้นนี่คือสิ่งที่ฉันทำ:

mycommand.sh | echo -n

echoคำสั่งไม่ได้ให้ความสนใจที่จะเข้ามาตรฐานจึงจะถูกยกเลิก และ-nเพื่อให้บรรทัดใหม่ที่ไร้ประโยชน์ไม่ถูกพิมพ์ไปยัง stdout


1
แม้ว่าสิ่งนี้อาจตอบคำถามได้ แต่มันจะเป็นคำตอบที่ดีกว่าถ้าคุณสามารถให้คำอธิบายได้ว่าทำไมถึงเป็นเช่นนั้น
DavidPostill

1
ใช่ แต่จะตอบคำถามอย่างไร "ไม่สามารถเข้าถึง / dev / null: สิทธิ์ที่ถูกปฏิเสธแม้ว่า crw-rw-rw- 1 รูทราก 1, 3 Sep 21 12:05 / dev / null"?
DavidPostill

1
มันไม่ตอบคำถาม แต่มันก็ให้วิธีแก้ปัญหา บางครั้งไม่มีคำตอบโดยตรงในอุดมคติ
Mark Stewart

0
chmod a+rw /dev/null /dev/random /dev/urandom /dev/ptmx /dev/tty /dev/zero /dev/full /dev/fuse /dev/net/tun

นี่คือสิ่งที่แก้ปัญหาของฉันใน VPS โปรดสังเกตว่าหลังจากคุณรีบูตเซิร์ฟเวอร์ - คุณได้รันคำสั่งนี้อีกครั้ง

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