क्रोट निर्देशिका घटक के लिए खराब स्वामित्व या मोड


57

मैंने उपयोगकर्ता को MY_USER बनाया। उसका घर dir / var / www / RESTRICTED_DIR पर सेट करें, जो वह मार्ग है जिसे उसे प्रतिबंधित किया जाना चाहिए। फिर मैंने sshd_config और सेट को संपादित किया:

Match user MY_USER
  ChrootDirectory /var/www/RESTRICTED_DIR

फिर मैंने ssh को फिर से शुरू किया। RESTRICTED_DIR का MY_USER मालिक (और समूह का मालिक) बना, और इसे 7% करने के लिए तैयार किया गया।

Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER

अगर मैंने sshd_config से 2 लाइनें हटा दीं तो उपयोगकर्ता सफलतापूर्वक लॉगिन कर सकता है। बेशक यह सभी सर्वर तक पहुंच सकता है। समस्या क्या है? मैंने भी RESTRICTED_DIR को रूट करने की कोशिश की (जैसा कि मैंने कहीं पढ़ा है कि किसी ने इसे करने में यही समस्या हल की है)। कोई भाग्य नहीं..

जवाबों:


73

से पेज :man

ChrootDirectory
एक निर्देशिका के पथनाम को प्रमाणीकरण के बाद chroot (2) के लिए निर्दिष्ट करता है। Pathname के सभी घटकों को रूट-स्वामित्व वाली निर्देशिका होना चाहिए जो किसी अन्य उपयोगकर्ता या समूह द्वारा लिखने योग्य नहीं हैं । चेरोट के बाद, sshd (8) उपयोगकर्ता के होम डायरेक्टरी में वर्किंग डायरेक्टरी को बदल देता है।

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


यह मुझे पागल बना रहा है। मैंने "chown root: root -R / var / www" किया; "chmod 775 -R / var / www /"; "usermod -a -G root www-data"। लेकिन मैं अभी भी
MultiformeIngegno

1
आवश्यकता पथ घटकों पर है ( /, /var, /var/www, और /var/www/RESTRICTED_DIRसब से ऊपर सुरक्षा आवश्यकताओं को पूरा करना होगा)। यह एक सच्चा चिरोट है (मैन पेज की समीक्षा करें) - आपके उपयोगकर्ता के होम डायरेक्टरी को /bin
चेरोट के

2
ठीक! हल किया। मैं एक स्तर ऊपर चिरोषित dir सेट। फिर मैंने मूल chrooted_dir को 777 परमिट दिए। यह काम कर रहा है :)
मल्टीफोर्मेन्गेनो

1
इसके बावजूद कि मेन्यू क्या कहता है, और यहां तक ​​कि समूह को 'रूट' पर सेट करने के बावजूद, मुझे काम करने से पहले gw की अनुमति देनी होगी (Ubuntu 14.04)। मैनपेज को यह कहना चाहिए कि पथनाम के सभी घटकों को रूट-स्वामित्व वाली निर्देशिका होना चाहिए जो किसी भी अन्य उपयोगकर्ता या किसी भी समूह द्वारा सभी के लिए उपयुक्त नहीं हैं sudo chown root:root -R /path/to/home; sudo chmod 755 -R /path/to/home
mmell

3
मुझे पता है कि यह काफी पुराना है, लेकिन /var/wwwसीधे पथ के लिए अनुमतियों को संशोधित करने के बजाय , जो अपाचे को तोड़ सकता है, आप अपनी sftp निर्देशिका को दूसरे पथ में रखना बेहतर होगा, फिर अपाचे में URL मैपिंग का उपयोग करके अन्य निर्देशिका को इंगित करें । यहाँ प्रलेखन चेक httpd.apache.org/docs/2.4/urlmapping.html के तहतFiles Outside DocumentRoot
डैनियल

32

चेरोटडायरेक्टरी निर्देशिका को रूट के स्वामित्व में होना चाहिए और 755 मोड होना चाहिए:

sudo chown root:root /var/www/RESTRICTED_DIR
sudo chmod 755 /var/www/RESTRICTED_DIR

ठीक है, अब सभी फाइलों को /var/www/RESTRICTED_DIRस्वामित्व में होना चाहिए MY_USER, जो www-dataसमूह से संबंधित होनी चाहिए , और समूह की अनुमति देने के लिए 775 मोड होना चाहिए , जैसे:

sudo usermod -a -G www-data MY_USER
sudo chown MY_USER:www-data /var/www/RESTRICTED_DIR/*
sudo chmod 775 -R /var/www/RESTRICTED_DIR/*

नोट: याद रखें एक अच्छा अभ्यास केवल एक htdocs फ़ोल्डर तक पहुंच की अनुमति देता है यदि आप अपाचे को कॉन्फ़िगर कर रहे हैं।


3
बहुत यकीन है कि यह होना चाहिए sudo usermod -a -G www-data MY_USERक्योंकि समूह के बाद आना चाहिए-G
शैलियों

यह काम करता है लेकिन मैं निर्देशिका में नई फाइलें अपलोड नहीं कर सकता, मैं केवल रूट खाते के साथ और उपयोगकर्ता के स्वामित्व के साथ बनाई गई फ़ाइलों को संशोधित कर सकता हूं।
dlopezgonzalez

3

आज कुछ समस्या निवारण के बाद, मुझे एहसास हुआ कि रूट को निर्देशिकाओं को लिखने में भी सक्षम होना चाहिए ।

निम्नलिखित काम नहीं किया:

$ ls -ld /mnt/synology03/files/
dr-xr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
$ ls -ld /mnt/synology03
drwxr-xr-x 7 root root 4096 Oct  1 21:26 /mnt/synology03
$ ls -ld /mnt
drwxr-xr-x 6 root root 4096 Feb  8 10:01 /mnt
$ ls -ld /
drwxr-xr-x 24 root root 4096 Jan 14 09:22 /

जैसे ही मैंने यह तय किया, मेरे चिरोट ने काम करना शुरू कर दिया।

$ sudo chmod 755 /mnt/synology03/files/
$ ls -ld /mnt/synology03/files/
drwxr-xr-x 1 root root 156 Oct  8 20:10 /mnt/synology03/files/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.