Tomcat7 को tomcat7 (या किसी अन्य) उपयोगकर्ता के रूप में चलाएं


10

यह सुनिश्चित करने के लिए अनुशंसित तरीका क्या होगा कि Tomcat7 उदाहरण tomcat7 (या किसी अन्य) उपयोगकर्ता के रूप में चल रहा है?

मुझे लगता है कि मैं संशोधित कर सकते हैं tomcat7-instance/bin/startup.shऔर tomcat7-instance/bin/shutdown.shऔर शीर्ष पर स्थित 'सु tomcat7' जोड़ें।

Tomcat6 में मुझे लगता है कि यह पर्यावरण चर था TOMCAT6_USER


यदि आप "सुरक्षित तरीका" के लिए पूछ रहे हैं तो सबसे अधिक संभावना बहस को भड़काने वाली होगी। अब अगर आप पूछते हैं कि "tomcat7 के लिए एक अलग उपयोगकर्ता कैसे सेट करें?" यह जवाबदेह है। BTW, टॉमकैट उपयोगकर्ता टॉमकैट के साथ शुरू होता है, जहां तक ​​मुझे याद है कि आपने डिबेट पैकेज स्थापित किया है ..
Braiam

जवाबों:


13

सबसे सामान्य तरीका मानक tomcat7पैकेज को स्थापित करना apt-getऔर इसका उपयोग करना शुरू करना है:

sudo service tomcat7 start

डिफ़ॉल्ट उपयोगकर्ता और समूह कॉन्फ़िगर किए गए हैं /etc/default/tomcat7जैसा कि आप इस अंश में देख सकते हैं:

# Run Tomcat as this user ID. Not setting this or leaving it blank will use the
# default of tomcat7.
TOMCAT7_USER=tomcat7

# Run Tomcat as this group ID. Not setting this or leaving it blank will use
# the default of tomcat7.
TOMCAT7_GROUP=tomcat7

TOMCAT7_USER और TOMCAT7_GROUP वही था जिसकी मुझे तलाश थी। धन्यवाद
एड्रियन बेर

मैंने TOCAT7_USER को tomcat7-inst / bin / setenv.sh में संशोधित किया और सर्वर शुरू किया। लेकिन अगर मैं पीएस का उपयोग करके प्रक्रिया प्रदर्शित करता हूं तो उपयोगकर्ता TOMCAT7_USER में निर्दिष्ट नहीं है।
एड्रियन बेर

आप इसे सीधे संशोधित क्यों नहीं करते /etc/default/tomcat7?
डेविड लेवेस्क

मान लीजिए कि मेरे पास दो टॉमकैट उपयोगकर्ता उदाहरण हैं और मैं उन्हें विभिन्न उपयोगकर्ताओं के रूप में लॉन्च करना चाहता हूं।
एड्रियन बेर

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

11

संपादित करें: कृपया नीचे टिप्पणी पढ़ें! यह समाधान सभी स्थितियों के लिए लागू नहीं हो सकता है।

स्वीकृत उत्तर बहुत अच्छा है, लेकिन जब से मैं Ubuntu 14.04 पर Tomcat 7 चलाता हूं, कुछ अतिरिक्त चीजें थीं जो मुझे सब कुछ पाने के लिए आवश्यक थीं:

  1. फ़ाइल को संपादित करने से पहले आपको टॉमकैट सेवा को रोकना होगा /etc/default/tomcat7। एक बार जब आप उपयोगकर्ता और समूह को बदल देते हैं, तो पुराने उपयोगकर्ता का उपयोग करके किसी सेवा को रोकना संभव नहीं होगा।
  2. उपयोगकर्ता और समूह को फ़ाइल में बदलें /etc/default/tomcat7

  3. आपको फ़ोल्डर /var/log/tomcat7और उसके सभी फ़ाइलों का स्वामित्व बदलना होगा । कृपया ध्यान दें कि यह प्रवेश समूह रखने का एक फायदा है ताकि सभी प्रवेश उपयोगकर्ता लॉग पढ़ सकें।

    sudo chown -R newuser:adm /var/log/tomcat7

  4. फ़ोल्डर का स्वामित्व बदलें /var/lib/tomcat7/webapps

    sudo chown -R newuser:newgroup /var/lib/tomcat7/webapps

  5. यदि उबंटू 14.04 पर पोर्ट 80/443 पर चल रहा है, तो आपको ऑर्डर्बिंड फ़ाइलों के स्वामित्व को बदलने की आवश्यकता है:

    sudo chown newuser /etc/authbind/byport/80

    sudo chown newuser /etc/authbind/byport/443

  6. काम करने वाले फ़ोल्डर का स्वामित्व बदलें

    sudo chown newuser:adm /var/cache/tomcat7

    sudo chown -R newuser:newgroup /var/cache/tomcat7/Catalina

  7. कॉन्फ़िगर फ़ाइलों को पठनीय बनाएं। यहां आपके पास दो विकल्प हैं: या तो आप नए उपयोगकर्ता को tomcat7 समूह में जोड़ें:

    sudo usermod -a -G tomcat7 newuser

    ... या कॉन्फ़िगर फ़ाइलों का स्वामित्व बदलें:

    sudo chown -R :newgroup /var/lib/tomcat7/conf/*

  8. यदि आपके पास ऐसी अन्य फाइलें हैं जो आपके वेब-एप्स तक पहुंच रही हैं जैसे लॉग फाइल कॉन्फ़िगरेशन फाइलें आदि। तो आपको उन फाइलों के स्वामित्व को भी बदलना होगा।

  9. अब, नए उपयोगकर्ता के साथ सेवा को फिर से आग देने के लिए सब कुछ तैयार होना चाहिए।

EDIT 2: टॉमकैट 8 और उबंटू 18.04 में अपग्रेड करने के बाद एक अलग उपयोगकर्ता के रूप में टॉमकैट चलाते समय एक और मुद्दा दिखाई दिया। स्क्रिप्ट /etc/init.d/tomcat8में निम्न पंक्ति tomcat उपयोगकर्ता के होम फ़ोल्डर को बदलने लगती है, लेकिन इसका परिणाम यह नहीं है कि आप क्या चाहते हैं यदि आप एक अलग उपयोगकर्ता का उपयोग कर रहे हैं।

usermod --home /var/lib/tomcat8 $TOMCAT8_USER > /dev/null 2>&1 || true

इस लाइन को हटाकर या टिप्पणी करके, आप नए टॉमकैट उपयोगकर्ता के लिए होम फ़ोल्डर को बदलने से बच सकते हैं।


वहाँ सी आपके जवाब के साथ एक बड़ी समस्या है। अगले टोमकाट 7 पैकेज अपग्रेड (सिक्योरिटी फिक्स / बगफिक्स) पर, आपका सेटअप टूट जाएगा क्योंकि एप फिर से उसी यूजर (टोमैकट 7) का उपयोग कर नए टोमैकट 7 पैकेज संस्करण को स्थापित करेगा। इसलिए आप अनअटेंडेड अपग्रेड नहीं कर सकते हैं और प्रत्येक अपग्रेड के बाद चांस लेना याद रखना होगा।
user323094

मुझे इस बात का एहसास नहीं था और मेरे पास फिलहाल इसका कोई अच्छा समाधान नहीं है। कोई सुझाव, कोई भी?
स्टेनिक्स

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