अजीब व्यवहार जब sudo -u


0

मैं अपने पोस्टग्रेज डेटाबेस का दैनिक बैकअप सेट करने का प्रयास कर रहा हूं। उस छोर तक मैंने / home / backups निर्देशिका बनाई है, और इसके अंदर / home / backups / postgres निर्देशिका है। मालिक की /home/backups/postgresहै postgres, वह भी निर्देशिका का समूह है।

अब मैं दौड़ने की कोशिश करता हूं pg_dumpall > /home/backups/postgres/database.bak

जब मैं दौड़ता sudo -u postgres pg_dumpall ...हूं तो मुझे एक अनुमति अस्वीकृत त्रुटि मिलती है। हालांकि, जब मैं दौड़ता हूं sudo su postgresऔर तब pg_dumpall ..., यह ठीक काम करता है।

क्या हो रहा है?


Pg_dumpall पर क्या अनुमतियाँ हैं - और यदि आप जारी which pg_dumpallकरते हैं तो क्या आपको सही मिलेगा? क्योंकि वह मेरा अनुमान होगा।
Sobrique

दोनों वापसी / usr / bin / pg_dumpall, जो एक अन्य फ़ाइल का लिंक है, जिसके पास समूह और अन्य के लिए rx अनुमतियाँ हैं।
ज़ाम्बक

आह बिल्कुल। आप उपयोगकर्ता के database.bakबजाय आप के रूप में लिखने की कोशिश कर रहे हैं postgres। यह permission deniedकमांड नहीं चल रहा है, यह आउटपुट को रीडायरेक्ट कर रहा है।
सोबरीके

हाँ, यह मूल रूप से है।
सोब्रीक

जवाबों:


1

यदि आप चलाते हैं:

sudo -u postgres pg_dumpall > /home/backups/postgres/database.bak

फिर pg_dumpallउस उपयोगकर्ता के रूप में चल रहा है। लेकिन रीडायरेक्ट अभी भी आप के रूप में चल रहा है। शायद यही है कि जहां से आपका permission deniedआता है, बल्कि यह कि कमांड। यदि आप /tmp/dump.outउस काम को पुनर्निर्देशित करते हैं?

अन्यथा आपको करने की आवश्यकता हो सकती है

sudo -u postgres bash -c "pg_dumpall > /home/backups/postgres/database.bak"

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