-बाश: / देव / अशक्त: अनुमति से इनकार किया


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

मोटे तौर पर वे मेरे मैक पर हैं,

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

यह संभव है , लेकिन वास्तव में संभावना नहीं है, कि मैंने देव को छुआ है।

जड़ उपयोगकर्ता के रूप में, मैं जोड़ने की कोशिश की kevinकरने के लिए rootसमूह:

usermod -a -G root kevin

हालाँकि मुझे अभी भी /dev/nullअनुमति से वंचित त्रुटियां हो रही हैं।

नया उपयोगकर्ता क्यों नहीं लिख सकता है /dev/null?
नए उपयोगकर्ता को किन समूहों का हिस्सा होना चाहिए?
क्या मैं उपयोगकर्ता को सही ढंग से प्रतिरूपण नहीं कर रहा हूँ?
क्या लिनक्स पर उपयोगकर्ताओं / अनुमतियों को स्थापित करने के लिए शुरुआती मार्गदर्शिका है?


1
लगता है / देव / नल 9-बाइट-लंबी साधारण फ़ाइल में परिवर्तित हो गए; यह डिवाइस फ़ाइल (फ़ाइल प्रकार / अनुमति बिट्स फ़ील्ड की शुरुआत में 'c') माना जाता है। यदि आप cat /dev/null, यह आपके द्वारा हाल ही में उपयोग की गई चीज़ की तरह दिखता है?
मार्क प्लॉटनिक

आह। हाँ इसने किया। * "मास्टर"। क्या आप इसे उत्तर के रूप में जोड़ना चाहते हैं और मैं इसे चिह्नित करूंगा?
केविन बर्क

आप रीबूट कर सकते हैं और / dev / null को रीमेक मिल जाएगा, लेकिन क्या आप जानते हैं कि फ़ाइल में / dev / null को बदलने के लिए क्या हुआ था? अगर यह दोबारा हुआ तो दर्द होगा।
मार्क प्लॉटनिक

1
मेरा अनुमान है कि मैंने इसे लिखने के बजाय "git शाखा" के आउटपुट को / dev / null में स्थानांतरित कर दिया है, या इसमें एक बुरी स्क्रिप्ट या कुछ और था
केविन बुर्के

जवाबों:


56

किसी ने स्पष्ट रूप से एक नियमित फ़ाइल को / dev / null में स्थानांतरित कर दिया। रिबूट करना इसे फिर से बनाएगा, या करेगा

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

जैसा कि @Flow ने एक टिप्पणी में उल्लेख किया है, आपको ऐसा rootकरना होगा।


12
अगर "कोई" से आपका मतलब "मुझे" है, तो हाँ :)
केविन बुर्के

यहां तक ​​कि मैं सर्वर पर एक ही मुद्दा int भाग गया। ubuntu 14.04 एलटीएस। लेकिन मैंने अनुमतियां नहीं बदलीं। क्या कोई जगह है जहाँ मैं ट्रैक कर सकता हूँ कि किस प्रक्रिया ने अनुमतियाँ बदल दी हैं?
मणि

@ मानी लिनक्स डिफ़ॉल्ट रूप से ऐसे छोटे बदलावों को लॉग नहीं करता है, लेकिन आप उन्हें अभी से देखने के लिए ऑडिटिंग चालू कर सकते हैं। किसी फ़ाइल के लिनक्स
चामोड

1
समाधान समस्या को हल करता है, लेकिन समस्या reoccurs। क्यूं कर?
अभिषेक सोनी

@AbhishekSoni आप ऑडिटिंग की कोशिश कर सकते हैं, जैसा कि एक फ़ाइल के इतिहास
चुकी है

13

यह समस्या को ठीक करना चाहिए (मूल के रूप में):

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

2
यह एक मैक / बीएसडी पर भी काम करता है
redolent

3

मार्क द्वारा सुझाए गए समाधान OpenBSD पर काम नहीं करते थे। तथापि

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

चाल चली। मैंने ओपनबीएसडी 5.6 पर इसका परीक्षण किया है। जब स्वीकृत उत्तर निष्पादित हो जाता है / dev / null ब्लॉक हो जाता है और इससे कोई भी रीडिंग कोड बुरी तरह से खराब हो जाता है।


क्या ओपी ने ओपनबीएसडी के बजाय सेंटोस का उपयोग नहीं किया?
ott--

3
दुर्भाग्य से, विभिन्न ऑपरेटिंग सिस्टम के लिए विभिन्न प्रमुख / मामूली संख्याओं का उपयोग होता है /dev/null, और कोई मानक नहीं है। ओपी पूछा के बारे में CentOS 6. लिनक्स इस्तेमाल किया गया है 1,3के लिए / dev / बातिल कम से कम 2001 FreeBSD पर वापस करने के लिए जा रहा है, मैंने देखा है 0,6, 15,0, 17,0, और 20,0। OpenBSD का उपयोग करता है 2,2। OpenBSD पर, आपको वास्तव में संख्याओं को जानने की आवश्यकता नहीं है; आप दौड़ सकते हैं # cd /dev; ./MAKEDEV std
मार्क प्लॉटनिक

मेजर और माइनर नंबर ऑपरेटिंग सिस्टम के बीच ट्रांसपोर्टेबल नहीं हैं। लिनक्स पर जो काम करता है वह आमतौर पर * बीएसडी या मैक ओएस एक्स (या सोलारिस, एआईएक्स, एचपी-यूएक्स, ...), और इसके विपरीत काम नहीं करेगा। आपको mknodमैनुअल की जांच करके (यदि आप भाग्यशाली हैं, जानकारी वहां है) या कर्नेल हेडर की जांच करके कमांड में उपयोग करने के लिए सही संख्याओं का पता लगाना होगा।
जोनाथन लेफ्लर

1

यह मेरे लिए उबंटू आवेदन के भीतर खिड़कियों पर हुआ, जबकि इसमें लिखी गई स्क्रिप्ट को चलाने का प्रयास किया गया था /dev/null। अनुमतियां दोनों के लिए सही थीं /devऔर/dev/null

यह पता चला कि स्क्रिप्ट फ़ाइल में समस्या नई विंडो थी। चल रहा है:

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

मेरे लिए समस्या का समाधान किया।


0

पोस्ट ओएस के लिए मैक ओएस एक्स का जवाब ...

sudo su \
&& rm -rf /dev/null \
&& mknod /dev/null c 3 2 \
&& chmod 666 /dev/null
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.