उबुन्टु 12.04 के बाद से रूट द्वारा केवल पठनीय / देव / यूरेनियम क्यों है और मैं इसे कैसे "ठीक" कर सकता हूं?


10

मैं बहुत सारे सर्वर पर Ubuntu 10.04 टेम्प्लेट के साथ काम करता था। 12.04 में बदलने के बाद से मुझे ऐसी समस्याएं हैं जो अब मैं अलग-थलग पड़ गया हूं।

/ Dev / urandom डिवाइस केवल रूट के लिए सुलभ है।

यह SSL इंजन का कारण बनता है, कम से कम PHP में, उदाहरण के लिए file_get_contents (https: // ... to fail।

इसने रेडमाइन को भी तोड़ दिया।

एक चामोद 644 के बाद यह ठीक काम करता है, लेकिन यह रिबूट पर नहीं रहता है।

तो मेरा सवाल है।

  1. यही कारण है? मुझे कोई सुरक्षा जोखिम नहीं दिखता क्योंकि ... मेरा मतलब है .. कुछ यादृच्छिक डेटा चोरी करना चाहते हैं?

  2. मेरे द्वारा यह कैसे किया जा सकता है? सर्वर अलग-थलग हैं और केवल एक एप्लिकेशन द्वारा उपयोग किया जाता है, इसलिए मैं ओपनवेज का उपयोग करता हूं। मैं एक रनलेवल स्क्रिप्ट या ऐसा कुछ के बारे में सोचता हूं ... लेकिन मैं इसे कुशलता से कैसे करूं? Dpkg या उपयुक्त के साथ Maby?

  3. वही vor / dev / shm चला जाता है। इस मामले में मैं पूरी तरह से समझता हूं कि इसकी पहुंच क्यों नहीं है, लेकिन मुझे लगता है कि मैं इसे ठीक करने के लिए "ठीक कर सकता हूं" ठीक उसी तरह से / देव / यूरेनियम


ls -l /dev/urandomअनुमतियाँ बदलने से पहले क्या दिखाता है? आप किसी भी /etc/udev/rules.d या /lib/udev/rules.dफ़ाइलों को अनुकूलित किया ?
डेविड श्वार्ट्ज

root@idle:~# ls -l /dev/urandom crw------- 1 root root 1, 9 May 22 14:15 /dev/urandom- मैं कुछ भी सेट नहीं किया, यह एक सादा कुंवारी सर्वर है, अभी तक अद्यतन भी नहीं मिला।
शूरिकान

3
प्रलेखन विशेष रूप से कहते हैं अनुमतियाँ होना चाहिए 0644। सवाल है - वे क्यों नहीं कर रहे हैं ?!
डेविड श्वार्ट्ज

1
एफडब्ल्यूआईडब्ल्यू, मेरे ताज़ा स्थापित प्रीसीज़ पर, / dev / urandom 0666 है। इंस्टॉल के दौरान, मैंने "ओपनश सर्वर" को एकमात्र रोल विकल्प के रूप में चुना। शायद आपके सेटअप में कुछ पैकेज गूंगा करता है।
cjc

मैं सहमत हूँ। मेरे udv नियम भी कहते हैं कि यह होना चाहिए। मुझे लगता है कि इसका वर्चुअलाइजेशन से कुछ लेना-देना है।
Shurrican

जवाबों:


3

Udv से अत्यधिक पढ़ने के साथ, आप यादृच्छिक पूल को निकाल सकते हैं, जिसके परिणामस्वरूप पूर्वानुमानित यादृच्छिक संख्याएँ होती हैं। संभवतः यही कारण है कि सभी के लिए पढ़ने के लिए / dev / urandom उपलब्ध नहीं है। (हटा दिया गया क्योंकि ग्रीम डोनाल्डसन सही है)

यदि आप अभी भी अनुमति बदलना चाहते हैं, तो अपने इनिट स्क्रिप्ट्स को गड़बड़ाने के बजाय / dev / urandom पर मोड सेट करने के लिए जिम्मेदार udv नियमों को देखें।

डेबियन के तहत, दोषी नियम को खोजना आसान है:

$ dpkg -L udev | xargs grep urandom
/lib/udev/rules.d/91-permissions.rules:KERNEL=="urandom", MODE="0666"

आपके मामले में, MODE निश्चित रूप से 0666 नहीं है।

Udv कॉन्फ़िगरेशन नियमों के अनुसार इसे बदलें, यदि आप चाहें।

नोट: http://lists.centos.org/pipermail/centos/2009-July/079134.html udev बदलने में मदद कर सकता है।

आपको मूल रूप से grep परिणाम की तरह दिखने वाला एक नियम बनाने की आवश्यकता होगी, सिवाय इसके कि एक सही मोड सेट है, और इसे /etc/udev/rules.d/ में एक नियम के रूप में जोड़ें (उबंटू और डेबियन में संभावित मतभेदों को ध्यान में रखते हुए) !)


यदि / dev / urandom केवल रूट द्वारा पठनीय है तो OpenSSH और सॉफ्टवेयर जो OpenSSL, GnuTLS और अन्य क्रिप्टोग्राफी लाइब्रेरी के साथ लिंक करते हैं, उन्हें या तो रूट के रूप में चलना होगा या रूट के रूप में शुरू करना होगा, फिर विशेषाधिकारों को छोड़ दें। किसी तरह कि बहुत बुरा लगता है
गेराल्ड

3
/ dev / urandom, एन्ट्रापी पूल पर निर्भर नहीं है। केवल / देव / यादृच्छिक कारणों से एन्ट्रापी पूल की कमी को पढ़ता है।
ThatGraemeGuy

जेराल्ड: sshd जड़ के रूप में शुरू होता है। उदाहरण के लिए, पोर्ट 22 को बांधने के लिए और उपयोगकर्ता, आदि में लॉग इन करने के लिए मुकदमा करना
asdmin

root @ redmine: ~ # dpkg -L udev | xargs grep urandom /lib/udev/rules.d/50-udev-default.rules:KERNEL=="null स्क्रीनशॉटzerofullfullrrencencunning, "MODE =" 0756 "रूट @ redmine: ~ # ls -lha / dev / urandom crw ------- 1 रूट रूट 1, 9 जुलाई 2 12:39 / dev / urandom यह वास्तव में कोई ग़लतफ़हमी नहीं बल्कि बग जैसा दिखता है, हालाँकि यह नए ओपनवेज़ इंस्टॉलेशन टेम्प्लेट में तय किया गया है!
शूरिकान

@ThatGraemeGuy मुझे एहसास है कि मैं पार्टी के लिए देर से हूँ, लेकिन यह पूरी तरह से सही नहीं है। एंट्रोपी अनुमान कम होने पर /dev/random ब्लॉक करता है, जबकि /dev/urandomएन्ट्रापी अनुमान कम होने पर भी छद्म आयामी संख्या का उत्पादन करना जारी रखता है। उस ने कहा, एंट्रॉपी पूल की पूरी अवधारणा किसी भी तरह "यादृच्छिकता से बाहर चल रही है" भ्रामक और अर्थहीन है
स्टीफन टॉसेट

1

आप इसे कैसे ठीक कर सकते हैं, इसके लिए एक अस्थायी बैंड-सहायता सिर्फ होगी

cat "chmod 666 /dev/urandom" >> /etc/rc.local

कि मैं कोशिश की, लेकिन काम नहीं किया। अब मैंने chmod कमांड को /etc/rc0.d/S30urandom के नीचे से जोड़ा ... जो काम किया
The Shurrican

कुछ ऐसे मुद्दे हैं जिनकी वजह से /etc/rc.local उबंटू पर ठीक से खट्टा नहीं हो सकता है - इसकी अनुमति सहित (इसे निष्पादन योग्य चिह्नित किया जाना है)। यहाँ देखें: bugs.launchpad.net/ubuntu/+source/sysvinit/+bug/882254
मिशैल-

होनहार लग रहा था, लेकिन मदद नहीं करता है। यह भी लगता है कि rc.local को निष्पादित नहीं किया जा रहा है, मैंने tmp के लिए एक सरल फ़ाइल लिखने की कोशिश की, लेकिन वह काम भी नहीं किया। अनुमतियाँ सही हैं। मैंने केवल रूट के लिए अमल करने की कोशिश की, बाकी पढ़ी और 777 भी ...
द शेरिकन

2
चूंकि समाधान की संभावना उबंटू-विशिष्ट है, AskUbuntu शायद इस बिंदु पर एक बेहतर शर्त है। मैं आनंद से systemd का उपयोग कर रहा हूं, और /etc/rc.d/rc.local सिर्फ एक गड़बड़ के बिना काम करता है क्योंकि यह systemV initscripts के तहत किया था: /
michel-slm

ध्यान दें कि आपको /etc/rc.localफ़ाइल को संपादित करना चाहिए । मेरे मामले में (उबंटू 16.04), फ़ाइल एग्ज़िट 0 के साथ समाप्त हो गई थी, इसलिए यदि आप सिर्फ एक लाइन जोड़ते हैं, तो यह वास्तव में काम नहीं करेगा।
एलेक्सिस विल्के

1

वास्तव में ubuntu 12.04 ओपनवेज़ टेम्प्लेट अब सार्वजनिक है और उन्होंने शम्र डिवाइस पर uraondm के साथ ही अनुमतियाँ भी तय कर दी हैं


1

समस्या है कि udevtrigger शुरू नहीं किया गया है। के साथ पुनरारंभ करने का प्रयास करें /etc/init.d/udevtrigger restart... और यदि यह मेरे लिए समस्या का समाधान करता है ... तो /etc/init/udevtrigger.bf फ़ाइल बदलें:

-     and not-container)
+     )

0

RHEL में: /etc/security/console.perms.d/ में अनुमति ओवरराइड के साथ सुरक्षा नियम जोड़ें

उबंटू में समान होना चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.