2012-03-12 9 views
5

मैं एपर्मर का उपयोग कर उबंटू 11.10 पर सैंडबॉक्सिंग आर हूं। एक बात मैंने देखा है कि हर png या पीडीएफ साजिश है कि आर बनाता है के लिए, यह चेतावनी से पता चलता है:आर और getpwuid()

(process:4589): GLib-WARNING **: getpwuid_r(): failed due to: Permission denied. 

हालांकि भले ही करने के लिए/आदि पढ़ने/पासवर्ड से इनकार किया है, सब कुछ बिल्कुल ठीक काम कर रहा है। मैं इन अनुमतियों को आर देने की योजना नहीं बना रहा हूं, क्योंकि मैं जो करना चाहता हूं उसके लिए अनावश्यक लगता है। हालांकि आवर्ती चेतावनी कुछ हद तक परेशान है।

r-base-2.14.2/src/main/platform.c: stpwd = getpwuid(sb.st_uid); 
r-base-2.14.2/src/unix/sys-unix.c: stpwd = getpwuid(getuid()); 
r-base-2.14.2/src/unix/sys-unix.c: stpwd = getpwuid(geteuid()); 

हालांकि, यह मेरे लिए वास्तव में स्पष्ट नहीं यह क्या करता है:

"getpwuid" आर/src में का एक त्वरित ग्रेप तीन स्थानों पर जहां यह कहा जाता है पता चलता है।

सवाल:

  • क्यों आर एक साजिश बनाने के लिए पासवर्ड फ़ाइल के लिए उपयोग की जरूरत है?
  • क्या कोई तरीका है कि मैं rp या pdf डिवाइस (बिना recompiling आर) लिखते समय getpwuid_r() को कॉल करने का प्रयास करने से रोक सकता हूं?
+0

छवि उत्पन्न करते समय मुझे 'स्ट्रेस (1)' के आउटपुट को देखने के लिए उत्सुकता होगी; मेरे लिए यह देखना मुश्किल है कि क्यों आर उपयोगकर्ता के नाम, गृहनिर्देशिका, जीईसीओएस, या खोल को जानना चाहेगा, हालांकि खोल के बाद सबसे अधिक संभावना है। क्या आपकी आर प्रोफ़ाइल को '/ bin/bash' या'/bin/dash' तक पहुंच निष्पादित करने की आवश्यकता है? (अस्वीकरण: मैं AppArmor टीम का हिस्सा हूं।) – sarnold

+0

आर '~/.R * *' से भी बहुत सी ~ ~/// * फ़ाइलों को पढ़ता है। लेकिन मैंने सोचा कि यह केवल स्टार्टअप पर ऐसा करता है। ओटीओएच ~ /। इतिहास आदि संलग्न हैं, लेकिन फिर से - पूर्ण फ़ाइल नाम शायद एक बार गणना की जाती है। –

+0

या, यदि आप मेरे लिए इसे पुन: उत्पन्न करने के लिए एक त्वरित तरीका सुझा सकते हैं, तो यह साफ होगा। मुझे आर के बारे में लगभग कुछ भी पता नहीं है (सीखने के कई आधा दिल के प्रयासों के बावजूद।) – sarnold

उत्तर

0

आर आंतरिक फ़ंक्शन file.info (gdb में do_fileinfo) उपयोगकर्ता नाम सहित फ़ाइलों के बारे में बहुत सारी जानकारी खोजने और वापस करने के लिए प्रतीत होता है।

मुझे लगता है कि यह मूल रूप से आर में लोड की गई प्रत्येक फ़ाइल के लिए करता है, लेकिन यह केवल पैकेज लोड के दौरान हो सकता है।

यह ऐसा करने के लिए getpwuid का उपयोग करता है।

मुझे लंबे समय तक एनआईएस प्रतिक्रियाओं के कारण आर में प्रदर्शन समस्याएं आ रही हैं। यह पैकेज लोडिंग के दौरान कई बार एक ही उपयोगकर्ता को देख रहा है, जो मुझे सभी तरह की समस्याओं का कारण बनता है।

मेरी इच्छा है कि यह कैश होगा।

संबंधित मुद्दे