मैं लिनक्स में एक चरण में एक फ़ोल्डर और उसके सभी सबफ़ोल्डर्स और फ़ाइलों के लिए अनुमतियाँ कैसे बदलूं? [बन्द है]


1805

मैं लिनक्स में एक चरण (कमांड) में एक फ़ोल्डर और उसके सभी उप फ़ोल्डर और फ़ाइलों की अनुमतियों को बदलना चाहूंगा।

मैंने पहले ही नीचे दिए गए आदेश की कोशिश की है, लेकिन यह केवल उल्लेखित फ़ोल्डर के लिए काम करता है:

chmod 775 /opt/lampp/htdocs

वहाँ स्थापित करने के लिए एक रास्ता है chmod 755के लिए /opt/lampp/htdocsऔर सबफ़ोल्डर और फ़ाइलों सहित इसकी समस्त सामग्री?

इसके अलावा, भविष्य में, अगर मैं एक नया फ़ोल्डर या फ़ाइल बनाता हूं, तो htdocsउस की अनुमति स्वचालित रूप से कैसे सेट की जा सकती है 755?

मुझे इस लिंक पर भी एक नज़र थी:

http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal


4
क्या आपका लिखने का इरादा था chmod 75 /opt/lampp/htdocsया वास्तव में ऐसा होना चाहिए chmod 755 /opt/lampp/htdocs?
हैलोगूडीबाई

232
तथ्य यह है कि लिनक्स के बारे में 4 सबसे अधिक मतदान वाला प्रश्न "बंद विषय के रूप में बंद" उल्लसित है। कौन है, लेकिन एक प्रोग्रामर chmod के बारे में परवाह करेगा? यह ऑफ-टॉपिक कैसा है? "अनुमति", "फ़ोल्डर", और "cmod" भी टैग क्यों हैं अगर वे ऑफ-टॉपिक हैं?
आर्थर डेंट

8
@ArthurDent, क्योंकि यह प्रश्न (पूरी तरह से मान्य और सहायक होने के कारण) सिस्टम-केंद्रित SE साइट के लिए अधिक अनुकूल है, जैसे कि SuperUser या ServerFault। यह स्पष्ट रूप से प्रोग्रामिंग से संबंधित नहीं है।
टाइमलैमर

26
@timelmer ज़रूर, लेकिन मैं फिर से पूछता हूं, "अनुमति", "फ़ोल्डर" और "cmod" टैग क्यों हैं? Cmod को प्रोग्रामिंग के लिए कभी 'स्पष्ट रूप से' कब इस्तेमाल किया जाएगा?
आर्थर डेंट

9
यदि आप वास्तव में picky प्राप्त करना चाहते हैं, तो बैश वास्तव में एक स्क्रिप्टिंग भाषा है, लेकिन फिर php है, जो SO को प्रतीत नहीं होता है।
टाइमलैमर

जवाबों:


2955

अन्य उत्तर सही हैं, जिसमें chmod -R 755इन अनुमतियों को ट्री में सभी फ़ाइलों और सबफ़ोल्डरों पर सेट किया जाएगा। लेकिन पृथ्वी पर आप क्यों करना चाहेंगे ? यह निर्देशिकाओं के लिए समझ में आता है, लेकिन सभी फ़ाइलों पर निष्पादन बिट क्यों सेट करें?

मुझे संदेह है कि आप वास्तव में क्या करना चाहते हैं, निर्देशिकाओं को 755 पर सेट करें और या तो फ़ाइलों को अकेले छोड़ दें या उन्हें 644 पर सेट करें। इसके लिए, आप findकमांड का उपयोग कर सकते हैं । उदाहरण के लिए:

सभी निर्देशिकाओं को 755 में बदलने के लिए ( drwxr-xr-x):

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

सभी फ़ाइलों को 644 में बदलने के लिए ( -rw-r--r--):

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;

231
किसी को भी समझाने के लिए कि {} \;आखिर लाइन का मतलब क्या है?
निलज़ोर

307
@ निलज़ोर chmod 644 {} \;उस कमांड को निर्दिष्ट करता है जिसे findप्रत्येक फ़ाइल के लिए निष्पादित किया जाएगा । {}फ़ाइल पथ द्वारा प्रतिस्थापित किया जाता है, और अर्धविराम कमांड के अंत को दर्शाता है (बच गया, अन्यथा इसे इसके बजाय शेल द्वारा व्याख्या किया जाएगा find)।
१०:४६ बजे टोबेबज़

25
"लेकिन क्यों सभी फाइलों पर निष्पादित बिट सेट करें" क्यों नहीं? मैं उबंटू / लिनक्स के लिए नया हूं ...
फ्लेवरस्केप

12
@FlavorScape Womble विशेष रूप से खोज द्वारा लौटाए गए निर्देशिकाओं पर निष्पादित बिट सेट कर रहा है। किसी निर्देशिका पर निष्पादन की अनुमति उपयोगकर्ता वर्ग को उस निर्देशिका की सामग्री को सूचीबद्ध करने और उसमें सीडी करने की अनुमति देती है। आम तौर पर बोलते हुए आप चाहते हैं कि आर और एक्स दोनों एक डायरेक्टरी पर हों ताकि वह आपके लिए सुलभ हो, भले ही अजीब तरह के मामले हो सकते हैं जहां आप केवल एक या दूसरे को सेट करेंगे। अधिक जानकारी के लिए इस गाइड को देखें: nixsrv.com/llthw/ex23
एलेक्जेंडर

25
स्लीपिनैट के अपवाद के साथ, प्रत्येक प्रतिक्रिया ने भविष्य में बनाई गई फ़ाइलों / फ़ोल्डरों के लिए अनुमतियों की सेटिंग के बारे में अपने प्रश्न के पहलू को संबोधित करने के लिए उपेक्षित किया ।
JGarrido

780

-R विकल्प की जाँच करें

chmod -R <permissionsettings> <dirname>

भविष्य में, आप पहले आदमी पृष्ठ की जाँच करके बहुत समय बचा सकते हैं:

man <command name>

तो इस मामले में:

man chmod

147
वह क्या है man?
एडम

36
यह मैनुअल पेज के लिए खड़ा है और एक लिनक्स कमांड है जो कमांड के लिए मैन पेज दिखाता है (अधिकांश लिनक्स कमांड में एक मैन पेज होता है)। आदमी ls या आदमी आदमी की कोशिश करो।
स्टीव रोबिलार्ड

8
मैक ओएस एक्स के टर्मिनल में यह मेरे लिए काम नहीं करता था। वहां मैंने "chmod -R <अनुमतियाँ> <dirname> *" किया और यह काम किया।
एइनर Eलाफ्सन

127
मुझे लगता है कि अब, वास्तव में यहां पोस्ट करना या Google का उपयोग करने की तुलना में अधिक तेज़ है man। विशेष रूप से कुछ के लिए जैसे grepकि यदि आप इसके लिए नए हैं तो manदस्तावेज़ में उदाहरण खोजने में बहुत समय लग सकता है, फिर भी Google या SO प्रति सेकंड में उदाहरण प्रदान करते हैं।
ईली

17
रिकॉर्ड के लिए, जो लोग लिनक्स से परिचित नहीं हैं वे आदमी से परिचित नहीं हो सकते हैं। मैं केवल इसके अस्तित्व के बारे में जानता हूं, लेकिन यह पता लगाने की कोशिश कर रहा हूं कि इसका उपयोग कैसे करना है और इसके लिए खुद में एक Google साहसिक की आवश्यकता होगी। संभवतः एक सार्थक उद्यम है, लेकिन आपको यह महसूस करना चाहिए कि मैंने इस पोस्ट को Google के माध्यम से पाया और इसने मेरे द्वारा पूछे गए सटीक प्रश्न का उत्तर दिया। संसाधन, मेरे दोस्त। संसाधन अमूल्य हैं। और आप सोच सकते हैं कि यह व्यर्थ था और उसे सिर्फ आदमी की जाँच करनी चाहिए थी, लेकिन इससे मुझे और दूसरों के हुनरड्स (हजार भी) की मदद मिली। तो कृपया उस पर विचार करें।
Soundfx4

391

यदि आप सभी फ़ाइलों के लिए a+rऔर सभी निर्देशिकाओं के लिए अनुमतियाँ सेट करना चाहते हैं a+x, और पूरी तरह से उपनिर्देशिका पेड़ के माध्यम से पुनरावृत्ति करते हैं, तो उपयोग करें:

chmod -R a+rX *

X(यह है कि राजधानी X, नहीं छोटे x!) फ़ाइलों के लिए नजरअंदाज कर दिया है (जब तक कि वे पहले से ही किसी के लिए निष्पादन योग्य हैं), लेकिन निर्देशिका के लिए प्रयोग किया जाता है।


27
बहुत बढ़िया जवाब। बस ध्यान दें कि * छिपी हुई फाइलों (डॉट के साथ शुरू होने वाले नाम) से मेल नहीं खाएगा। यह अधिक समझ में आ सकता है, फिर, उपयोग करने के लिए। (वर्तमान निर्देशिका के लिए)।
आरोन एडम्स

21
यह सही जवाब है। मेरे मामले के लिए, मैं सभी निर्देशिकाओं को 775 और सभी फाइलों को 664 पर सेट करना चाहता था । @ पीट के शानदार जवाब ने मुझे chmodडॉक्स तक पहुंचाया , जहां मुझे लगा कि मैं इसका इस्तेमाल कर सकता हूं chmod -R g+wX .। वाहवाही!
चाडोह

8
xयदि उनके पास पहले से यह फाइल नहीं है तो इसे हटा दिया जाएगा ।
बेनोइट डफेज

5
मामले में यह पूरी तरह से स्पष्ट नहीं है, अपरकेस एक्स का अर्थ है "सभी निर्देशिकाओं को निष्पादन योग्य बनाएं" (लेकिन फाइलें नहीं)।
मैट ब्राउन

4
@BenoitDuffez अगर आपका लक्ष्य फाइलों से निष्पादन योग्य बिट को निकालना भी है, तो आप निर्देशों को जोड़ सकते हैं, जैसे "x" को हर चीज से "x" हटाने के लिए और फिर "r" को सब कुछ और "x" को केवल निर्देशिका में सेट करें। ।
नॉक

144

आप उपयोग कर सकते हैं -Rके साथ chmodसभी फ़ाइलों और सबफ़ोल्डर्स की पुनरावर्ती ट्रेवर्सल के लिए।

आपको sudo की आवश्यकता हो सकती है क्योंकि यह LAMP पर निर्भर करता है जो वर्तमान उपयोगकर्ता या किसी अन्य द्वारा स्थापित किया जा रहा है:

sudo chmod -R 755 /opt/lampp/htdocs

17
किसी तरह, sudo chmod 755 -R /directoryकाम नहीं किया लेकिन sudo chmod -R 755 /directoryकिया। अजीब। मैं जिस तरह से मैक ओएस एक्स का उपयोग कर रहा हूं।
11

8
यह मेरे अनुभव में सही है। झंडे को सीधे chmod के बाद दिखाई देना चाहिए, स्ट्रिंग में कहीं भी नहीं।
orionrush 16

1
ऊपर लिखित आदेश गलत है। सही पुनरावर्ती आदेश है: sudo chmod -R 755 / opt / lampp / htdocs नोट: -R 755 से पहले होना चाहिए
संदीप पटेल - SM

यह समाधान रेडहैट के लिए ठीक काम कर रहा है। धन्यवाद!
लवांडे

RHEL पर ठीक काम किया है और sudo chmod 755 -Rकाम किया
AnBisw

79

सही पुनरावर्ती आदेश है:

sudo chmod -R 755 /opt/lampp/htdocs

-R: वर्तमान फ़ोल्डर सहित हर उप फ़ोल्डर को बदलें


1
नमस्ते आप वर्तमान फ़ोल्डर के बारे में सुनिश्चित हैं कि आप पथ के बावजूद एक हैं?
शरीफ

OSX USING: sudo chmod 777 लॉग / -R GETTING: chmod: -R: ऐसी कोई फ़ाइल या निर्देशिका SHOULD BE: sudo chmod -R 777 लॉग /
एलाद सिल्वर

76

सभी सबफ़ोल्डर्स (पुनरावर्ती) उपयोग -R पर सेट करने के लिए

chmod 755 /folder -R

और नए फोल्डर / फाइल cd / folder umask 755 को डिफॉल्ट सेट करने के लिए umask का उपयोग करें


24
अपने umask755 पर सेट न करें ! आप अपने द्वारा बनाई गई किसी भी फाइल या निर्देशिका को सूचीबद्ध करने, पढ़ने या उपयोग करने में सक्षम नहीं होंगे!
स्लीपिनएट

14
क्या आपका मतलब umask 022 है?
Xkeeper

4
यह फाइलों सहित सभी 755 पर सेट करता है।
पैट्रिक मुतवारी

@sleepynate पृथ्वी पर आप किस बारे में बात कर रहे हैं? 755 का मतलब है कि मालिक पढ़, लिख और निष्पादित कर सकता है, और अन्य सभी उपयोगकर्ता पढ़ सकते हैं और निष्पादित कर सकते हैं, लेकिन ऑब्जेक्ट पर नहीं लिख सकते हैं
svin83

2
@NicHartley @ svin83 umask बिट्स है जो अनुमतियों से दूर हो जाएगा, इसलिए यह प्रभावी रूप से चामोद का विलोम है। λ ~ → umask 022 λ ~ → umask -S u=rwx,g=rx,o=rx λ ~ → umask 755 λ ~ → umask -S u=,g=w,o=w
स्लीपाइनेट

51

chmod 755 -R /opt/lampp/htdocsपुनरावर्ती अनुमतियाँ सेट करेगा। आपके द्वारा अनुमतियाँ सेट करने के बाद बनाई गई इस निर्देशिका में फ़ाइलों के लिए अनुमतियों को स्वचालित रूप से सेट करने का कोई तरीका नहीं है, लेकिन आप सेटिंग द्वारा अपनी सिस्टम-वाइड डिफ़ॉल्ट फ़ाइल अनुमतियों को बदल सकते हैं umask 022


9
स्लीपिनैट का उत्तर केवल एक ही सही है। पोस्टर ने दो प्रश्न पूछे: 1) मैं फ़ाइलों और फ़ोल्डरों पर अनुमतियों को कैसे ठीक करूं, और 2) मैं चूक (अर्थ "भविष्य" फाइलें) कैसे बदलूं। जैसा कि नैट ने कहा, पहला "चामोद" के साथ है, और दूसरा "उमस्क" के साथ है। मैं यह भी जोड़ना चाहता हूं कि सिर्फ 1 डायरेक्टरी पर umask को बदलने के लिए NO WAY है ... umask प्रति उपयोगकर्ता "सभी या कुछ नहीं" है। हालाँकि, आपको एक नया उपयोगकर्ता बनाने से कोई रोकता नहीं है, जो आपके साथ समूह साझा करता है, ताकि आप बस 'sudo -u someuser [क्रिएट फाइल] बना सकें "। यह बॉक्स के बाहर थोड़ा सोच रहा है, लेकिन यह एक अच्छा वर्कअराउंड है।
स्कॉट प्रिव

मुझे लगता है कि आप सही हैं, लेकिन inheritकई मामलों का समाधान नहीं हो सकता है या यह विशेष रूप से NTFS-3G के साथ काम करेगा?
सेबेस्टियन श्लिक्ट जुएल

भविष्य में फ़ोल्डरों को अनुमति दिए बिना भविष्य में एक फ़ोल्डर कॉपी करने में सक्षम नहीं हो सकता है, myforlderअन्य स्थानों (जैसे एक पीसी) से इस लक्ष्य निर्देशिका (सर्वर पर) के कारण यह एक नया फ़ोल्डर बनाने की कोशिश करेगा नाम के साथ लक्ष्य निर्देशिका myfolder जो आपके पास ऐसा करने की अनुमति नहीं है। जैसा कि मेरे पास है root, मैं सिर्फ उपयोग करता हूं chown -R username:usergroup /directory
जेसन गोल

27

आप सुपरकसर पर नीक द्वारा दिए गए इस जवाब पर विचार करना चाहते हैं और इस तरह से सभी फ़ाइलों / फ़ोल्डरों के लिए "एक चामॉड" का उपयोग कर सकते हैं:

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)

9
चेतावनी, कमांड लाइन की सीमाओं में चलाना आसान है।
लोथेर

1
मेरे पास यह त्रुटि है: -बैश: / बिन / चामोद: तर्क सूची बहुत लंबी है
ओलेग अब्राजेव

त्रुटि को दूर करने के लिए -execविकल्प का उपयोग करना बेहतर होगा । findArgument list too long
चमत्कार


20

उपयोग:

sudo chmod 755 -R /whatever/your/directory/is

हालाँकि, इससे सावधान रहें। यदि आप गलत फ़ाइलों / फ़ोल्डरों की अनुमतियों को बदलते हैं तो यह वास्तव में आपको नुकसान पहुंचा सकता है।


20

यहाँ निर्देशिकाओं को 775 पर सेट करने और फ़ाइलों को 664 पर भेजने का एक और तरीका है।

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

यह लंबा लग सकता है, लेकिन यह तीन कारणों से बहुत अच्छा है:

  1. केवल दो बार के बजाय एक बार फाइल सिस्टम के माध्यम से स्कैन।
  2. फ़ाइलों को कैसे संभाला जाता है, कैसे निर्देशिकाओं को संभाला जाता है, इस पर बेहतर नियंत्रण प्रदान करता है । स्टिकी बिट जैसे विशेष मोड के साथ काम करते समय यह उपयोगी है , जिसे आप शायद निर्देशिकाओं पर लागू करना चाहते हैं, लेकिन फाइलें नहीं।
  3. manपृष्ठों से बाहर सीधे एक तकनीक का उपयोग करता है (नीचे देखें)।

ध्यान दें कि मैंने इस समाधान के बीच प्रदर्शन अंतर (यदि कोई हो) की पुष्टि की है और केवल दो खोज आदेशों का उपयोग कर रहे हैं (जैसा कि पीटर मोर्टेंसन समाधान में है)। हालांकि, मैनुअल में एक समान उदाहरण देखना उत्साहजनक है।

man findपेज से उदाहरण :

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)

Traverse the filesystem just once, listing setuid files and  direc‐
tories into /root/suid.txt and large files into /root/big.txt.

चियर्स


अब, शेल स्क्रिप्ट में इसे कैसे मोड़ें ताकि हम ओपनमॉड $ फोल्डर चला सकें?
सेंट

लोग, कृपया xargs का उपयोग करें। यह हजारों प्रक्रिया चालान बचाता है।
सीनहर्न

13

chmod -R 755 directory_nameकाम करता है, लेकिन आप 755 में भी नई फाइलें कैसे रखेंगे? फ़ाइल की अनुमति डिफ़ॉल्ट अनुमति बन जाती है।


मैंने ऐसा किया लेकिन वहां से टर्मिनल नहीं खोल सकता। मैं इसे ठीक नहीं कर सकता।
काविन्दु गायन्था

9

Mac OS X 10.7 (शेर) के लिए, यह है:

chmod -R 755 /directory

और हां, जैसा कि अन्य सभी कहते हैं, ऐसा करते समय सावधान रहें।


9

आप यह सुनिश्चित करना चाहते हैं कि उपयुक्त फाइलें और निर्देशिकाएं chmod-ed / अनुमतियाँ हैं जो उपयुक्त हैं। सभी निर्देशिकाओं के लिए आप चाहते हैं

find /opt/lampp/htdocs -type d -exec chmod 711 {} \;

और सभी छवियों के लिए, जावास्क्रिप्ट, सीएसएस, एचटीएमएल ... ठीक है, आपको उन्हें निष्पादित नहीं करना चाहिए। इसलिए उपयोग करें

chmod 644 img/* js/* html/*

लेकिन सभी लॉजिक कोड (उदाहरण के लिए PHP कोड) के लिए, आपको अनुमतियाँ सेट करनी चाहिए, ताकि उपयोगकर्ता उस कोड को न देख सके:

chmod 600 file

6

मुझे लगता है कि एडम पूछ रहा था कि /opt/lampp/htdocsनिर्देशिका पर काम करने के लिए सभी प्रक्रियाओं के लिए umask मूल्य कैसे बदलना है ।

नई बनाई गई फ़ाइलों के लिए फ़ाइल की अनुमति निर्धारित करने के लिए उपयोगकर्ता फ़ाइल-निर्माण मोड मास्क (umask) का उपयोग किया जाता है। इसका उपयोग नई फ़ाइलों के लिए डिफ़ॉल्ट फ़ाइल अनुमति को नियंत्रित करने के लिए किया जा सकता है।

इसलिए यदि आप फ़ाइलों को अपलोड करने के लिए किसी तरह के ftp प्रोग्राम का उपयोग करेंगे, तो आपको /opt/lampp/htdocsअपने इच्छित सर्वर का उपयोग करने के लिए अपने ftp सर्वर को कॉन्फ़िगर करने की आवश्यकता होगी।

यदि फ़ाइलों / निर्देशिकाओं को उदाहरण के लिए php द्वारा बनाया जाता है, तो आपको php कोड को संशोधित करना होगा

<?php
umask(0022);
// other code
?>

यदि आप अपने बैश सत्र से नई फ़ाइलें / फ़ोल्डर बनाएंगे, तो आप अपने शेल प्रोफाइल में umask मान सेट कर सकते हैं ~ .bashrc या आप सभी उपयोगकर्ताओं के लिए umask को /etc/bashrcया /etc/profileफ़ाइल में सेट कर सकते हैं । फ़ाइल में निम्नलिखित जोड़ें: umask 022

Sample umask Values and File Creation Permissions
If umask value set to   User permission     Group permission     Others permission
000                         all              all                   all
007                         all              all                   none
027                         all          read / execute            none

और पहले से ही बनाई गई फ़ाइलों के लिए अनुमतियाँ बदलने के लिए आप पा सकते हैं। उम्मीद है की यह मदद करेगा।


4

फ़ाइलों को खोजने और chmodउन्हें लागू करने के दो उत्तर हैं। सबसे पहले एक findफाइल है और chmodइसे लागू होता है (जैसा कि @ombleGoneBad द्वारा सुझाया गया है)।

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

दूसरा समाधान findकमांड के साथ सभी फाइलों की सूची तैयार करना और chmodकमांड को इस सूची को आपूर्ति करना है (जैसा कि @lamgesh द्वारा सुझाया गया है)।

chmod 755 $(find /path/to/base/dir -type d)

ये दोनों संस्करण तब तक अच्छे से काम करते हैं जब तक कि findकमांड द्वारा लौटाई गई फ़ाइलों की संख्या छोटी है। दूसरा समाधान आंख को बहुत अच्छा लगता है और पहले की तुलना में अधिक पठनीय है। यदि बड़ी संख्या में फ़ाइलें हैं, तो दूसरा समाधान त्रुटि देता है:Argument list too long.

तो मेरा सुझाव है

  1. chmod -R 755 /opt/lampp/htdocsयदि आप एक ही बार में सभी फ़ाइलों और निर्देशिकाओं की अनुमतियाँ बदलना चाहते हैं, तो उपयोग करें ।
  2. उपयोग करें find /opt/lampp/htdocs -type d -exec chmod 755 {} \;यदि आपके द्वारा उपयोग की जा रही फ़ाइलों की संख्या बहुत बड़ी है। -type xफ़ाइल केवल, जहां d फ़ाइल और कड़ी के लिए एल के लिए निर्देशिका, च को खोजने के लिए प्रयोग किया जाता है के विशिष्ट प्रकार के लिए विकल्प खोज करता है।
  3. chmod 755 $(find /path/to/base/dir -type d)अन्यथा उपयोग करें
  4. किसी भी स्थिति में पहले एक का उपयोग करने के लिए बेहतर है

2

यह बहुत सरल है।

टर्मिनल में फाइल मैनेजर के पास जाएं। उदाहरण: sudo nemo/opt/तब जाकर गुण → अनुमति पर क्लिक करें । और फिर अन्य । अंत में, पढ़ने और लिखने के लिए acess बनाने और हटाने और फाइल करने के लिए परिवर्तन करें और बटन लागू करें पर क्लिक करें ... और काम करें।


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