उपयोगकर्ता को लॉग फ़ाइल तक पढ़ने की अनुमति देने का सबसे सुरक्षित तरीका क्या है?


21

मेरे एप्लिकेशन को पढ़ने की आवश्यकता है /var/log/messages, जो उपयोगकर्ता और समूह से संबंधित है root/var/log/messagesमेरे आवेदन को पढ़ने के लिए न्यूनतम जोखिम स्तर की क्या आवश्यकता है?

वर्तमान में, मेरी योजना /var/log/messagesएक नए समूह के समूह के स्वामित्व को बदलने और इसमें रूट और मेरे एप्लिकेशन उपयोगकर्ता को जोड़ने की है, लेकिन इससे एप्लिकेशन लिखने के विशेषाधिकार भी मिलेंगे /var/log/messages

ओएस: सेंटोस 5.5

जवाबों:


7

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


लॉगरोट स्क्रिप्ट कहाँ स्थित हैं?
gAMBOOKa

1
/etc/logrotate.d/ टूटी हुई लॉग-इन स्क्रिप्ट के लिए फ़ोल्डर है। / var / log / संदेश /etc/logrotate.d/syslog में है। आपको /etc/logrotate.conf के अंदर / var / log / संदेशों को स्थानांतरित करना होगा और फिर 'create 0640 root new_group' जैसी किसी चीज़ का उपयोग करके इसे ठीक से फ़ाइल बनाने के लिए कहना होगा।
rfelsburg

आपको /etc/logrotate.d/
Massimo

17

उपरोक्त उत्तर पर थोड़ा विस्तार करने के लिए यहां एक वास्तविक विश्व उपयोग मामला है। मैं Redhat बॉक्स पर एंटरप्राइज़ लॉग विश्लेषण एप्लिकेशन स्प्लंक चलाता हूं। यह स्पंक यूजर और स्पंक ग्रुप के तहत चलता है। यह लॉग / / लॉग में लॉग को एक्सेस करने के लिए स्पंक को रोकता है क्योंकि वे केवल रूट (या एक sudo एडमिन) द्वारा एक्सेस किए जा सकते हैं

केवल स्पंक के लिए केवल पढ़ने की अनुमति देने के लिए मैंने इसे बनाए रखने के लिए कुछ एसीएल और संशोधित लॉगरोटेट का उपयोग किया है।

आप ACL को मैन्युअल रूप से सेट कर सकते हैं

sudo setfacl -m g:splunk:rx /var/log/messages

यह तब तक जारी नहीं रहेगा जब तक कि लॉगोटेट एसीएल सेटिंग को फिर से लागू नहीं करेगा इसलिए एक अधिक स्थायी समाधान के लिए मैंने एसीएल को रीसेट करने के लिए लॉग्रोटेट में एक नियम जोड़ा। मैंने फाइल जोड़ दी ।।

/etc/logrotate.d/Splunk_ACLs

साथ में

{
    postrotate
        /usr/bin/setfacl -m g:splunk:rx /var/log/cron
        /usr/bin/setfacl -m g:splunk:rx /var/log/maillog
        /usr/bin/setfacl -m g:splunk:rx /var/log/messages
        /usr/bin/setfacl -m g:splunk:rx /var/log/secure
        /usr/bin/setfacl -m g:splunk:rx /var/log/spooler
    endscript
}

किसी फ़ाइल की ACL स्थिति की जाँच करें

$ getfacl /var/log/messages

एसीएल के बारे में अधिक जानकारी के लिए देखें https://help.ubuntu.com/community/FilePermissionsACLs http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/


भी Splunk पर पोस्ट किए गए उत्तर देता answers.splunk.com/answers/4253/...
निक लोमड़ी

1
ध्यान दें कि स्पंक को लॉग फ़ाइलों पर अनुमति की आवश्यकता नहीं है, बस पढ़ें।
रोज्स

@nickfox यह है /etc/logrotate.d/Splunk_ACLsकि आपके द्वारा वहां पोस्ट की गई संपूर्ण सामग्री ? आपको वास्तव में लॉग इन करने के लिए किसी भी पथ को निर्दिष्ट करने की आवश्यकता नहीं है, जो कि पोस्ट्रोटेट बिट को संसाधित करने के लिए है?
डेल एंडरसन

हम्म ऐसा नहीं लगता। मैं सिस्टम लॉग के लिए मौजूदा लॉगोटेट कॉन्फिगर को संशोधित नहीं करना चाहता था और मैं उन्हें अपने साथ बदलना भी नहीं चाहता था। इस तरह स्पंक के लिए कस्टम संशोधन स्वतंत्र रूप से मौजूद है। आपको पैकेज या कठपुतली आदि के साथ तैनात करने की अनुमति है। बेशक मैं गलत हो सकता है, यह एक साल पहले खत्म हो गया था क्योंकि मैंने ऐसा किया था
निक लोमड़ी

1
बस एक सुझाव है कि यदि आप एक्स विकल्प का उपयोग करते हैं (जैसे कि एक्स के बजाय कैपिटल एक्स में) तो यह तभी निष्पादित होगा जब फ़ाइल एक निर्देशिका है या पहले से ही कुछ उपयोगकर्ता के लिए अनुमति निष्पादित है
स्टेओलेरी

5

आपकी योजना स्वीकार्य है और "पारंपरिक" यूनिक्स अनुमति योजना में जाने का सबसे अच्छा तरीका है।
एक अन्य विकल्प यह है कि किसी अन्य फ़ाइल में रुचि के संदेशों को डायवर्ट करें (जो ऐप उपयोगकर्ता को किसी भी संवेदनशील चीज़ तक पहुंच देने से बचता है /var/log/messages)।

यदि आप ऐसा महसूस नहीं करते हैं कि उपयोगकर्ता / समूह / अन्य की पारंपरिक अनुमति योजना से बंधे हुए हैं, तो आप अपने ऐप उपयोगकर्ता को केवल पढ़ने के लिए एक्सेस देने के लिए POSIX ACLs (अन्य, संभवतः बेहतर होटोस / Google के माध्यम से उपलब्ध जानकारी) का उपयोग कर सकते हैं /var/log/messages- यह थोड़ा अधिक महीन होता है और यह गलती से किसी और व्यक्ति को एप्लिकेशन के समूह में नहीं डालता है और उन्हें उन चीजों तक पहुंच प्रदान करता है जो उन्हें देखने में सक्षम नहीं होनी चाहिए।


2

Yip मैंने एक ग्राहक के लिए फ़ाइल setfaclतक पहुँच देने के लिए ऐसा किया है mail.log, न कि आपको logrotate.confलॉग को घुमाए जाने के बाद ACL को फिर से सेट करने के लिए फ़ाइल में एक कमांड चिपकाने की आवश्यकता होगी जैसे:

postrotate
         /usr/bin/setfacl -m o::r /var/log/mail.log  
endscript

ध्यान दें कि मैंने केवल इसे सेट किया है, और परीक्षण नहीं किया है, लेकिन यद्यपि यह यहां वापस पोस्ट करेगा, can.t देख सकता है कि यह क्यों काम करेगा। यदि कोई गलत है तो कोई मुझे सही करेगा।


0

आप इसके लिए एसीएल का उपयोग कर सकते हैं । यह आपको विशिष्ट उपयोगकर्ताओं और फ़ाइलों के लिए विशिष्ट अतिरिक्त पहुँच नियम सेट करने की अनुमति देता है।


-1

एक बार जब आप अपने एसीएल को कॉन्फ़िगर करते हैं, जैसा कि अन्य लोगों ने कहा है, अपने सभी एसीएल नियमों को पोस्ट्रोटेट कॉन्फ़िगरेशन में डालने के बजाय, आप प्रत्येक बार एक नई लॉग फ़ाइल बनाने के बजाय कोपीट्रुनेट का उपयोग करने के लिए लॉगोटेट को स्वाइप कर सकते हैं।

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