काम नहीं कर रहा है मुझे पता है कि इससे पहले कई बार पूछा गया है, लेकिन मेरा मानना है कि मेरी स्थिति अलग है।एसवीएन हुक प्री-रेप्रप्रॉप-चेंज
मैं लॉग इन संदेशों में किए गए परिवर्तनों को सक्षम करने के लिए हमारे एसवीएन भंडार में प्री-रेप्रप्रॉप-चेंज हुक जोड़ने की कोशिश कर रहा हूं।
इससे पहले कि मैं pre-revprop-change
फ़ाइल जोड़ी मैं इस त्रुटि हो रही थी:
$ svn propset -r 557 --revprop svn:log "New message!" https://myserver/repos/myrepo
svn: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svn: At least one property change failed; repository is unchanged
svn: Error setting property 'log':
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
कोई बात नहीं, मैंने सोचा। मैं इसे जोड़ देंगे:
$ cd /var/www/svn/myrepo/hooks
$ # Create the simplest hook possible
$ echo '#!/bin/sh' > pre-revprop-change
$ echo 'exit 0' >> pre-revprop-change
$ # Check that it looks correct
$ cat pre-revprop-change
#!/bin/sh
exit 0
$ # Looks good, now make it executable
$ chmod a+x pre-revprop-change
$ # Check the permissions
$ ls -al pre-revprop-change
-rwxr-xr-x 1 apache apache 17 2012-05-24 12:05 pre-revprop-change
$ # Run it, to make sure it runs, and check the error code
$ ./pre-revprop-change
$ echo $?
0
तो, सब कुछ के अनुसार मैं इतने पर पढ़ा है, वह सब मैं यह काम करने की जरूरत है होना चाहिए।
$ svn propset -r 557 --revprop svn:log "New message!" https://myserver/repos/myrepo
svn: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svn: At least one property change failed; repository is unchanged
svn: Error setting property 'log':
Revprop change blocked by pre-revprop-change hook (exit code 255) with no output.
ध्यान देने लायक कुछ अंक हैं:
1) भंडार लेकिन, जब मैं फिर से लॉग संदेश संपादित करने का प्रयास, मैं अभी भी (एक अलग से एक इस समय) कोई त्रुटि मिलती है एक SELinux सर्वर (फेडोरा कोर 10) पर होस्ट किया गया है। शायद कुछ ऐसी चीज है जो मुझे उन अनुमतियों के संबंध में करने की ज़रूरत है?
$ ls -alZ pre-revprop-change
-rwxr-xr-x apache apache unconfined_u:object_r:httpd_sys_content_rw_t:s0 pre-revprop-change
2) भंडार WebDAV (ध्यान दें भंडार नाम पर https://
) के माध्यम से एक्सेस किया जा रहा है: यहाँ हुक के एसई अनुमतियाँ हैं। क्या पूर्व-सुधार-परिवर्तन परिवर्तनों की अनुमति देने के लिए मुझे कुछ ऐसा है जो मुझे WebDAV पक्ष पर सेट करने की आवश्यकता है?
क्या यह सुरक्षित है "सुरक्षित" :) ... लेकिन कुछ सूक्ष्म समस्याओं हाँ, SELinux पैदा कर सकता है, जो हो सकता है के अपने मानकों पर निर्भर करता है हालांकि लॉगिंग सक्षम करके निदान किया गया। – 0xC0000022L
धन्यवाद। हाँ, मुझे नहीं लगता कि हमारा सर्वर हैक-सेंट्रल होने वाला है, लेकिन मैं बस यह सुनिश्चित करना चाहता था कि मैंने अभी तक एक विशाल सुरक्षा छेद खोला नहीं है! क्या आप जानते हैं कि 'httpd_sys_script_exec_t' का उपयोग क्यों नहीं किया गया? ऐसा प्रलेखन से लगता है कि यह होना चाहिए ... –
मैंने सोचा होगा कि यह काम करना चाहिए था। कोई विचार नहीं है कि यह 'httpd_sys_script_exec_t' के बजाय' httpd_exec_t' क्यों होना चाहिए। लेकिन यह संभव है कि SELinux किसी भी तरह से स्क्रिप्ट को अलग करने में सक्षम है जिसका उत्पादन अपाचे से जाता है जहां यह कहीं और जाता है।आप अपाचे का उपयोग करते हैं और 'svnserve' नहीं (भले ही अपाचे इसे प्रॉक्सी कर सकता है), है ना? – 0xC0000022L