-bash: / dev / null: ปฏิเสธการอนุญาต


30

ฉันกำลังพยายามสร้างผู้ใช้ใหม่บนระบบ Centos 6

ก่อนอื่นเลย

useradd kevin

จากนั้นฉันพยายามเรียกใช้คำสั่งในฐานะผู้ใช้รายนั้น

su - kevin

อย่างไรก็ตามฉันได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้

-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
-bash: /dev/null: Permission denied
[kevin@gazelle ~]$

และฉันไม่สามารถทำอะไรได้มากเท่ากับผู้ใช้รายนั้น

สิทธิ์บน/dev/nullมีดังนี้:

-rwxr-xr-x  1 root root           9 Jul 25 17:07 null

เหมือนกับบน Mac ของฉัน

crw-rw-rw-   1 root   wheel         3,   2 Jul 25 14:08 null

เป็นไปได้แต่ไม่น่าเป็นไปได้จริง ๆ ที่ฉันแตะต้อง dev

ในฐานะผู้ใช้รูทฉันพยายามเพิ่มkevinในrootกลุ่ม:

usermod -a -G root kevin

อย่างไรก็ตามฉันยังได้รับ/dev/nullอนุญาตปฏิเสธข้อผิดพลาด

ทำไมผู้ใช้ใหม่ไม่สามารถเขียนถึง/dev/null?
ผู้ใช้ใหม่ควรเป็นส่วนใดของกลุ่ม
ฉันปลอมตัวเป็นผู้ใช้ไม่ถูกต้องหรือไม่?
มีคู่มือเริ่มต้นในการตั้งค่าผู้ใช้ / การอนุญาตบน Linux หรือไม่?


1
ดูเหมือนว่า / dev / null เปลี่ยนเป็นไฟล์ธรรมดาขนาด 9 ไบต์ มันควรจะเป็นไฟล์อุปกรณ์ ('c' ที่จุดเริ่มต้นของฟิลด์ประเภทไฟล์ / สิทธิ์บิต) ถ้าคุณcat /dev/nullมันดูเหมือนสิ่งที่คุณเพิ่งใช้?
Mark Plotnick

อา ใช่มันได้. "* master" คุณต้องการที่จะเพิ่มว่าเป็นคำตอบ & ฉันจะทำเครื่องหมาย?
เควินเบิร์ค

คุณสามารถรีบูตและ / dev / null จะได้รับการจัดแจงใหม่ แต่คุณรู้หรือไม่ว่าเกิดอะไรขึ้นกับการเปลี่ยน / dev / null ลงในไฟล์ มันคงจะเจ็บปวดถ้ามันเกิดขึ้นอีกครั้ง
Mark Plotnick

1
ฉันเดาว่าฉันย้ายผลลัพธ์ของ "git branch" ไปที่ / dev / null แทนที่จะเขียนมันหรือมีสคริปต์ที่ไม่ดีหรืออะไร
Kevin Burke

คำตอบ:


56

มีคนย้ายไฟล์ปกติไปที่ / dev / null อย่างชัดเจน การรีบูตเครื่องจะสร้างใหม่หรือทำ

rm -f /dev/null; mknod -m 666 /dev/null c 1 3

เนื่องจาก @Flow ได้จดบันทึกไว้ในความคิดเห็นคุณจะต้องrootทำเช่นนี้


12
ถ้าโดย "ใครบางคน" คุณหมายถึง "ฉัน" แล้วใช่ :)
เควินเบิร์ค

แม้ว่าฉันจะเจอปัญหาเดียวกันบนเซิร์ฟเวอร์ อูบุนตู 14.04 LTS แต่ฉันไม่ได้เปลี่ยนการอนุญาต มีความเป็นไปได้ใดบ้างที่ฉันสามารถติดตามกระบวนการที่เปลี่ยนการอนุญาต
มณี

@Mani Linux ตามค่าเริ่มต้นจะไม่บันทึกการเปลี่ยนแปลงเล็กน้อย แต่คุณสามารถเปิดการตรวจสอบเพื่อดูการเปลี่ยนแปลงเหล่านี้ได้ วิธีการตรวจหา Linux chmod ของไฟล์
Mark Plotnick

1
การแก้ปัญหาแก้ไขปัญหา แต่ปัญหาเกิดขึ้นอีก ทำไม?
Abhishek Soni

@AbhishekSoni คุณอาจลองตรวจสอบตามที่อธิบายไว้ในแสดงประวัติของไฟล์ (รายชื่อผู้ใช้ที่แก้ไขไฟล์)
Mark Plotnick

13

สิ่งนี้ควรแก้ไขปัญหา (เป็น root):

rm /dev/null
mknod /dev/null c 1 3
chmod 666 /dev/null

2
อันนี้ใช้ได้กับ Mac / BSD
redolent

3

โซลูชันที่ Mark แนะนำแนะนำไม่ทำงานบน OpenBSD อย่างไรก็ตาม

mknod -m 666 /dev/null -c 2 2

ทำเคล็ดลับ ฉันได้ทดสอบสิ่งนี้ใน OpenBSD 5.6 แล้ว เมื่อคำตอบที่ยอมรับนั้นถูกดำเนินการ / dev / null จะบล็อกและไขรหัสใด ๆ ที่อ่านออกมาจากมันค่อนข้างแย่


OP ใช้ CentOS ไม่ใช่ OpenBSD หรือเปล่า
ott--

3
น่าเสียดายที่ระบบปฏิบัติการที่แตกต่างกันใช้หมายเลขหลัก / รองที่ต่างกัน/dev/nullและไม่มีมาตรฐาน OP ถามเกี่ยวกับ CentOS 6. ลินุกซ์ได้ใช้1,3สำหรับ / dev / null จะกลับไปอย่างน้อยปี 2001 เมื่อวันที่ FreeBSD ฉันได้เห็น0,6, 15,0, และ17,0 ใช้20,0 OpenBSD 2,2บน OpenBSD คุณไม่จำเป็นต้องรู้ตัวเลข # cd /dev; ./MAKEDEV stdคุณสามารถเรียกใช้
Mark Plotnick

หมายเลขหลักและหมายเลขรองไม่สามารถขนส่งระหว่างระบบปฏิบัติการได้ สิ่งใดที่ใช้งานได้บน Linux จะไม่ทำงานบน * BSD หรือ Mac OS X (หรือ Solaris, AIX, HP-UX, …) และในทางกลับกัน คุณต้องค้นหาหมายเลขที่ถูกต้องเพื่อใช้ในmknodคำสั่งโดยการตรวจสอบคู่มือ (ถ้าคุณโชคดีมีข้อมูลอยู่ในนั้น) หรือโดยการตรวจสอบส่วนหัวของเคอร์เนล
Jonathan Leffler

1

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

พบปัญหาคือหน้าต่างขึ้นบรรทัดใหม่ในไฟล์สคริปต์ วิ่ง :

dos2unix.exe c:\path\to\script.sh

แก้ไขปัญหาให้ฉัน


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