वर्तमान निर्देशिका के ऊपर निर्देशिका के साथ पुनरावर्ती चाउन शुरू होता है


27

मैं अपने "व्यवस्थापक" खाते और Alt+ Ctrl+ में लॉग इन नहीं कर सकाF1 से पता चला है अपनी सभी फ़ाइलों को मेरी "मानक" उपयोगकर्ता के स्वामित्व किया गया। अजीब।

तो मैं ध्यान से बदल गया /home/adminऔर एक किया

sudo chown -R admin:admin *

(तथा .* भी)।

महान।

तब मैं अपने "मानक" उपयोगकर्ता के रूप में लॉग इन नहीं कर सका और यह पता चला कि सभी फाइलें /home/standardअब "व्यवस्थापक" के पास थीं।

बहुत ही हास्यप्रद। ये क्यों हो रहा है?

sudo chown -R standard:standard /home/standard/*

एक ही काम किया, /home/adminसाथ ही बदल दिया /home/standard

मैं सामान्य से अधिक भ्रमित हूं क्योंकि मैंने 15.04 में अपग्रेड करने की कोशिश की थी और मेरे कंप्यूटर को बहुत बर्बाद कर दिया था, इसलिए मैं 14.04 के साथ चीजों को वापस रख रहा हूं, कृपया मेरे साथ धैर्य रखें।


शायद एक दूसरे के लिए एक प्रतीकात्मक लिंक है? क्या ls -l /homeकहता है
स्टीलड्राइवर

जवाबों:


35

यह समस्या इसलिए होती है क्योंकि आपने चलाया है:

sudo chown -R admin:admin .*

हम जानते हैं कि .वर्तमान निर्देशिका ..इंगित करती है और मूल निर्देशिका इंगित करती है। जब आप के साथ कमांड चलाते हैं .*, तो इसका मतलब है कि वर्तमान निर्देशिका में किसी भी छिपी हुई फ़ाइल (वर्तमान के साथ बताते हुए .), वर्तमान निर्देशिका खुद ( .), मूल निर्देशिका ( ..)। बस के बाद कुछ भी डाल .( *मतलब 0 या अधिक अक्षर)। परिणामस्वरूप माता-पिता की निर्देशिका के साथ-साथ यह सभी बच्चे निर्देशिकाओं के लिए chown-ed हो जाता हैadmin:admin

इस परीक्षण को देखें:

test$ ls -al
drwxrwxr-x 4 foo foo 4096 Jun  3 07:15 .
drwxrwxr-x 4 foo foo 4096 Jun  2 18:06 ..
drwxrwxr-x 2 foo foo 4096 Jun  3 07:15 egg
drwxrwxr-x 2 foo foo 4096 Jun  3 07:12 spam

$ sudo chown -R bar:bar spam/.*

test$ ls -al
drwxrwxr-x 4 bar  bar  4096 Jun  3 07:15 .
drwxrwxr-x 4 foo  foo  4096 Jun  2 18:06 ..
drwxrwxr-x 2 bar  bar  4096 Jun  3 07:15 egg
drwxrwxr-x 2 bar  bar  4096 Jun  3 07:12 spam

वापस करने के लिए आप की जरूरत है chown फिर से प्रभावित निर्देशिकाओं की ।

मुझे वास्तव में यकीन नहीं है कि आपकी योजना क्या थी, लेकिन यहां कुछ विचार हैं:

  • करने के लिए chownकिसी भी निर्देशिका रिकर्सिवली (छुपा फ़ाइलों सहित):

    sudo chown -R foo:foo /spam/egg/
    
  • करने के लिए chown(छुपा फ़ाइलों सहित) केवल उन्हीं फ़ाइलों को निर्देशिका (नहीं निर्देशिका में ही) के अंदर:

    (shopt -s dotglob && sudo chown -R foo:foo egg/*)
    
  • करने के लिए chownकेवल गैर छिपा फ़ाइलें (निर्देशिका खुद के बिना):

    sudo chown -R foo:foo egg/*
    

धन्यवाद, मुझे यह अब मिल गया है ... duh; पी अभी भी पता नहीं क्यों स्वामी पहली जगह में बदल गया, जब तक कि यह किसी तरह से ग्रब से संबंधित नहीं था मुझे एक त्रुटि दे रहा था और मुझ पर 14.04 इंस्टॉल प्रोग्राम को क्रैश कर रहा था। मेरा मानक उपयोगकर्ता वह पहला था जिसे मैंने बनाया था और मैंने बाद में उस एक को डीमोट किया और एक नया बनाया।
डेविड

@ दाविद मैं स्पष्ट नहीं हूँ कि आपको क्या मिल रहा है ..
heemayl

3

मुझे लगता है कि यह फ़ाइलों के लिए "*।" पैरामीटर है; जो ""। "," सहित सभी के साथ मेल खाता है। और ".." फाइलें। ".." मूल निर्देशिका है, जिसमें इसके अंतर्गत सब कुछ शामिल है।

सबसे अच्छा तरीका एक फ़ोल्डर का बैकअप लेना है, और उस वास्तविक फ़ोल्डर को निर्दिष्ट करना है जिसे आप बदलना चाहते हैं (/ होम / एडमिन)।

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