किसी नए उपयोगकर्ता को कुछ भी खतरनाक करने से कैसे रोकें?


31

मैंने हाल ही में एक नए उपयोगकर्ता के रूप में लिनक्स को आज़माने के लिए अपने सर्वर पर उबंटू सर्वर स्थापित किया है। मैंने वेब सर्वर को सेट करने के तरीके पर एक ट्यूटोरियल का पालन किया जिसमें कहा गया था कि मुझे chmod 777वेब सर्वर की आवश्यकता है ताकि इसे लिखा जा सके।

वैसे भी, मैंने एक दोस्त के लिए एक नया खाता बनाया, ताकि मैं उस सर्वर पर कुछ फाइलें देख सकूं, जिन्हें मैंने उनके घर में रखा था:

adduser francis

खाता बनाने के बाद मैंने जाँच की कि उसके पास क्या पहुँच है

groups francis

इसने कहा "फ्रैंकिस: फ्रैंकिस", इसलिए मुझे नहीं लगा कि एक समस्या है, ubuntu ने उसे डिफ़ॉल्ट रूप से किसी भी समूह में शामिल नहीं किया है, जो समझ में आता है, इसने उसे बिना किसी अतिरिक्त अनुमति के सुरक्षा-वार बनाया, इसलिए सब कुछ ठीक है और बांका है। एक हफ्ते बाद, निरपेक्ष और पूरी तरह से डरावनी स्थिति में, मुझे पता चला कि भले ही वह SUDO जैसी चीजें नहीं कर सकता या सिस्टम डायरेक्टरी में गड़बड़ नहीं कर सकता, लेकिन सर्वर पर लगभग सभी चीजों के लिए उसकी पूरी पहुंच थी। उदाहरण के लिए उसने / web / www (और इस तरह से php config files में संग्रहीत पासवर्ड आदि) पर मेरी वेब सर्वर फ़ाइलों तक पूर्ण पढ़ने / लिखने की पहुंच थी, भले ही वह निर्देशिका उसके होम डायरेक्टरी में नहीं है और मैंने उसे कभी भी किसी ऐसे समूह में नहीं जोड़ा जो कर सकता था उस निर्देशिका तक पहुँच, और न ही मैंने उसे कुछ भी करने के लिए किसी भी विशेष पहुंच की अनुमति दी है।

वैसे भी, यहाँ क्या चल रहा है? मैं किसी भी महत्वपूर्ण चीज तक उसकी पहुंच कैसे मारूं? वह सामान जैसे / मीडिया या / var / www तक नहीं पहुंच सकता। मैंने सोचा था कि नए उपयोगकर्ता डिफ़ॉल्ट रूप से कुछ भी खतरनाक या स्नूपिंग करने से रोकते थे जहां उन्हें नहीं होना चाहिए।

तो यह योग है, मुझे केवल उसे उन निर्देशिकाओं तक पहुंचने की अनुमति देने की आवश्यकता है, जिन्हें मैं मैन्युअल रूप से उन निर्देशिकाओं में निर्दिष्ट करता हूं जिन्हें उसे ठीक से काम करने की आवश्यकता है (उसका घर डीआईआर, विम, नैनो आदि।)

धन्यवाद


30
आप 777 chmod कर रहे हैं और पूछ रहे हैं कि हर कोई वहां क्यों लिख सकता है? मैन पेज chmod के लिए पढ़ें
अनवर

16
हाँ, 777 आपकी समस्या है, कई कारणों से।
Android देव

21
@ ऑस्करमैन - नहीं, जब आप 777 देते हैं, तो हर कोई सब कुछ एक्सेस कर सकता है , कृपया इसे पढ़ें: linux.com/learn/understanding-linux-file-permissions
Android Dev

11
हम सभी गलतियाँ करते हैं, खासकर जब हम पूरी तरह से नए वातावरण में सीख रहे हैं। यह सीखने के लिए एक अच्छा है, लिनक्स आधारित ओएस का उपयोग करते समय विंडोज में चीजें कैसे काम करती हैं, यह निश्चित रूप से आपकी धारणाओं को बहा देता है। अपनी अनुमतियों को वापस करने के बाद, आपको ध्यान देना चाहिए कि उपयोगकर्ता कुछ भी नहीं बदल सकता है जो उन्हें करने में सक्षम नहीं होना चाहिए। यदि आपने chmodकहीं और उपयोग किया है, तो आपको अन्य समस्याएं हो सकती हैं।
Arronical

8
FYI करें- मैं इस प्रश्न को बढ़ा रहा हूं क्योंकि यह वास्तव में नए लोगों को खोजने के लिए अच्छा है। और यह गलत धारणा शायद हमारे विचार से कहीं अधिक सामान्य है। यह इस बात का भी एक अच्छा उदाहरण है कि आपको इंटरनेट पर मिलने वाली कमांड (यहाँ भी) की नकल के बिना यह नहीं जानना चाहिए कि वे क्या करते हैं।
हारून

जवाबों:


40

यह डिजाइन के अनुसार है। और बदतर। chmod 777 का अर्थ है ... "मैं स्वामी, उनके समूह में किसी को भी, और किसी को भी पढ़ना, लिखना और निष्पादन की अनुमति देना चाहता हूं"

जो बहुत भयानक है।

और एक वेब सर्वर के लिए, 777 इष्टतम नहीं है। 755 (स्वामी के पास पूर्ण अनुमति समूह है और अन्य ने + निष्पादित किया है) एक सामान्य डिफ़ॉल्ट है लेकिन जो आपने कहा है उससे आप कम से कम पढ़ने-लिखने या मालिक (वेब ​​सर्वर उपयोगकर्ता) के लिए रीड-राइट निष्पादित करना चाहते हैं, और शायद समूह, और उपयोगकर्ता के लिए कोई अनुमति नहीं। सर्वरफॉल्ट पर उपयुक्त अनुमति स्तर क्या हैं, इस पर अधिक पूर्ण प्रश्न हैं, लेकिन 640 या 740 जैसी किसी चीज़ पर विचार करें।

उस ने कहा, आप उपयोगकर्ता को उसकी छोटी दुनिया में भी डाल सकते हैं - उपयोगकर्ता को सिस्टम में अपने स्वयं के स्थान पर रखने के लिए चुरोट स्थापित कर सकते हैं । ऐसा करने के लिए चारों ओर गाइड हैं - उदाहरण के लिए ओली का उत्कृष्ट उत्तर यहां है जो आपकी आवश्यकताओं के आधार पर एक विकल्प हो सकता है।


4
मामूली बिंदु: "मालिक, उसके समूह में कोई भी ..." - फ़ाइल के मालिक को फ़ाइल समूह से संबंधित होना आवश्यक नहीं है।
अलेक्स_ड

2
अच्छा लगा। मुझे पसंद है कि आपने सर्विफ़ॉल्ट पर विहित जवाब का उल्लेख किया है।
एल्डर गीक

3
इस स्थिति के लिए ऐतिहासिक शब्दजाल " विश्व पठनीय / लेखन योग्य" है।
कज़

19

अनिवार्य रूप से, यह इस तरह टूट जाता है:

R = 4 (read)
W = 2 (write)
X = 1 (execute)

तो, पठन अनुमति केवल 4 होगी, पढ़ना और लिखना 6 होगा, पढ़ना और निष्पादित करना 5 होगा, और सभी (पढ़ें, लिखना, निष्पादित करना) 7. 7. यह है कि आप एक मालिक, मालिक के समूह के लिए अनुमति ऑक्टेट मान की गणना कैसे करते हैं , या सभी को।

chmodफ़ाइल या निर्देशिका स्थान के साथ उन अनुमतियों को लागू करते समय , ऊपर गणना की गई संख्याएं इस तरह लागू की जाती हैं, मालिक, समूह और सभी के लिए एक ऑक्टेट के साथ:

     $ chmod _ _ _ <file or directory>
             | | |
owner--------  | |
owner's group--  |
everyone---------

इसलिए अगर मैं अपने आप को और मेरे समूह को पढ़ने, लिखने और उस फ़ोल्डर की अनुमति देना चाहता हूं जिसे मैंने स्वामित्व दिया है, लेकिन मैं नहीं चाहता था कि हर कोई इसे पढ़ सके, तो मैं उपयोग करूंगा:

$ chmod 770 myDirectory

अधिक जानकारी के लिए, chmod के लिए मैन पेज देखें :

$ man chmod

यदि आपको सही क्रम में सही अनुमतियां बनाने के लिए बिट्स को एक साथ जोड़ने के लिए याद नहीं है, तो आप यकीनन पढ़ने में आसान का उपयोग कर सकते हैं chmod ugo+rwx <...>। अक्षर यू सी , जी रूप , थेरेपी के लिए खड़े हैं ; r ead, w rite, e x ecute। हटाने के लिए आप '-' का उपयोग कर सकते हैं (जैसे:) chmod go-wx <...>। बस ध्यान दें कि यह केवल वही जोड़ता है या हटाता है जो आप टाइप करते हैं। समूह / अन्य के लिए पहुँच को दूर chmod ugo+rwx <file>; chmod u+rwx <file> नहीं करता है
रिएक्टिवरेवेन

@ReactiveRaven यह एक महान बिंदु है। लेकिन ओपी स्पष्ट रूप से उलझन में chmod 777था कि उसने क्या किया, इसलिए मैंने अपने स्पष्टीकरण का निर्देश दिया।
एरोन

@Zanna अच्छा फोन!
हारून

6

जैसा कि दूसरों ने उल्लेख किया है कि आपके पास 777 की अनुमति नहीं होनी चाहिए

यहाँ एक उपयोगी संदर्भ पत्रक है जिसका मैं उपयोग करता हूँ।

+-----+---+--------------------------+
| rwx | 7 | Read, write and execute  |
| rw- | 6 | Read, write              |
| r-x | 5 | Read, and execute        |
| r-- | 4 | Read,                    |
| -wx | 3 | Write and execute        |
| -w- | 2 | Write                    |
| --x | 1 | Execute                  |
| --- | 0 | no permissions           |
+------------------------------------+
You can use the octal notation, where the three digits correspond to the user, then group, then other. 
Perhaps this might help 
+------------+------+-------+
| Permission | Octal| Field |
+------------+------+-------+
| rwx------  | 700  | User  |
| ---rwx---  | 070  | Group |
| ------rwx  | 007  | Other |
+------------+------+-------+

1
अच्छा! यह लोगों (मेरे जैसे) के लिए एक बड़ी मदद है जो दृश्य सीखने वाले हैं।
हारून

3

उन लोगों के साथ फ़ाइलें साझा करने के लिए जिन्हें आपने लॉगिन दिया था, आपको विशेष रूप से कुछ भी करने की आवश्यकता नहीं है। डिफ़ॉल्ट डेबियन इंस्टॉलेशन पर, उपयोगकर्ताओं के पास एक-दूसरे के घर निर्देशिकाओं तक पहुंच होती है।

उदाहरण के लिए,

$ ls -ld ~
drwxr-xr-x 65 zwets zwets 4096 Sep 29 12:06 /home/zwets

मेरे होम निर्देशिका पर अनुमतियाँ मेरे सिस्टम पर किसी भी उपयोगकर्ता के लिए (r) और एक्सेस (x) पढ़ी जाती हैं । केवल मेरे पास अतिरिक्त (राइट) पहुंच है।

इसके अलावा, umaskउबंटू पर डिफ़ॉल्ट ऐसा है कि उपयोगकर्ता द्वारा बनाई गई फाइलें और निर्देशिका डिफ़ॉल्ट रूप से पढ़ने योग्य हैं । आप सेट कर सकते हैं umaskकरने के लिए 077आपको लगता है कि नहीं करना चाहता था, तो।

इसका मतलब यह है कि डिफ़ॉल्ट सेटअप में, यदि उपयोगकर्ता मेरे साथ youदस्तावेज़ साझा करना चाहता है ~/README.txt, तो कुछ youकरने की ज़रूरत नहीं है। मैं बस इसे देख सकता हूं:

$ who am i
zwets    pts/26       2016-09-29 08:05 (:pts/19:S.6)
$ ls -l ~you/README.txt
-rw-r--r-- 1 you you 24 Sep  8 11:23 /home/you/README.txt
$ cat ~you/README.txt
You's shared thoughts.

मैं फ़ाइल को संपादित या निकाल नहीं सकता, लेकिन मैं इसे उस स्थान पर कॉपी कर सकता हूं, जहाँ मेरी अनुमति है। फिर मैं इस प्रतिलिपि का स्वामी हूं:

$ echo "Adding my thoughts." >> ~you/README.txt
bash: /home/you/README.txt: Permission denied
$ rm ~you/README.txt
rm: remove write-protected regular file '/home/you/README.txt'? yeah!
rm: cannot remove '/home/you/README.txt': Permission denied
$ cp ~you/README.txt ~zwets
$ ls -l ~/README.txt
-rw-r--r-- 1 zwets zwets 24 Sep  29 14:09 /home/zwets/README.txt

ऐसे कई कारण हैं जिनकी वजह से अधिकांश सिस्टम डिफ़ॉल्ट रूप से पढ़ने योग्य है, जैसा कि मैंने AskUbuntu पर एक अन्य जवाब में बताया है । हालांकि, एक साझा प्रणाली पर यह गैर-मालिकों के लिए घर की निर्देशिकाओं को दुर्गम बनाने के लिए समझ में आता है:

$ chmod o-rwx ~
$ ls -l ~
drwxr-x--- 65 zwets zwets 4096 Sep 29 12:06 /home/zwets

... के रूप में कई उपयोगकर्ताओं को जाहिर है डिफ़ॉल्ट के बारे में पता नहीं है - QED ;-)। हालांकि यह समझदार होगा कि उपयोगकर्ताओं को इस बात से अवगत कराएं कि फ़ाइल अनुमतियां रहस्यों की सुरक्षा नहीं करती हैं।


1

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

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

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

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