चांस प्रतीकात्मक लिंक नहीं बदल रहा है


312

मैं कमांड के साथ एक प्रतीकात्मक लिंक के उपयोगकर्ता / समूह को बदलने की कोशिश कर रहा हूं:

$ chown -h myuser:mygroup mysymbolic/ 

लेकिन यह नहीं बदल रहा है। मैं रूट के रूप में लॉग इन हूं। वर्तमान उपयोगकर्ता / समूह को रूट: रूट पर सेट किया गया है। क्या गलत हुआ?


आप किस ऑपरेटिंग सिस्टम का उपयोग करते हैं? मैनॉल पेज के लिए रिकॉर्डिंग, -यह विकल्प केवल उन प्रणालियों पर प्रभाव डालता है जो प्रतीकात्मक लिंक के स्वामित्व को बदल सकते हैं।
जिचाओ 13

क्या आप एनएफएस माउंट पर हैं?
ओरतोमला लोकनी

जो कुछ भी समाप्त होता है /वह एक निर्देशिका है। आप का मतलब है mysymbolic, जो प्रतीकात्मक लिंक है, न mysymbolic/कि जो शायद वह निर्देशिका है जो इसे इंगित करता है।
डेविड श्वार्ट्ज

जवाबों:


381

मैं लक्ष्य के अंत में एक स्लैश डाल रहा था:

chown -h myuser:mygroup mysymbolic/ 

बस अंत में स्लैश को हटा दिया और काम करता है। यहाँ सही तरीका है:

 chown -h myuser:mygroup mysymbolic

9
मेरे लिए ubuntu पर काम नहीं करता
Radek

2
वाह, मुझे खोजने में घंटों लग गए।
परिभाषित करता है

54
@ रेकक यह उबंटू पर मेरे लिए काम करता था जब तक मुझे -hझंडा याद था ।
IQAndreas

29
मेरे लिए उबंटू के साथ -h और अनुगामी स्लेश के बिना काम करता है ।
फ्राइडेरब्लुमेले

8
मैं 4 साल बाद विश्वास नहीं कर सकता, मैं अपने अतीत में ही समस्या से जूझ रहा हूँ, मिसाइल '-एच'!
एंटनी

29

मैंने खुद यह कोशिश की है और यह मेरे लिए काम करता है। यदि आपके पास -h यह प्रतीकात्मक लिंक के स्वामी को बदलता है, लेकिन यदि आप नहीं करते हैं, तो यह फ़ाइल के स्वामी को ही बदलता है, लिंक को नहीं।

लेकिन यह प्रतीकात्मक लिंक के एक निर्देशिका से जुड़ा हुआ है काम नहीं करता है


2
इसके लायक क्या है, ओएस एक्स पर मैन पेज एक-पर (आर्क) लिनक्स की तुलना में -एच विकल्प पर बहुत स्पष्ट है। "-एच यदि फ़ाइल एक प्रतीकात्मक लिंक है, तो उपयोगकर्ता आईडी और / या लिंक की ग्रुप आईडी को ही बदलें।" सिस्टम जो एक
सिम्कलिन

6

मैं पूरी तरह से काम chownकरने के साथ भी एक निर्देशिका में असमर्थ था -h

# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# pwd 
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy   32 Dec 30 09:02 apps -> /u/apps/

5

क्या लक्ष्य एक फाइल या एक निर्देशिका है?

यदि यह एक निर्देशिका है तो कोशिश करें -H (ऊपरी स्थिति एच)


लक्ष्य एक निर्देशिका है

निर्देशिका के बारे में मेरा संपादित उत्तर देखें

6
थ्रेड नेक्रोमेंसी के लिए क्षमा करें, लेकिन मैं यह बताना चाहूंगा कि निचला सिंटैक्स लोअरकेस 'h' के साथ है।


3

Myuser के घर पर myuser द्वारा उस लिंक को फिर से बनाएँ और इस लिंक को sudo द्वारा लक्ष्य स्थान पर mv करें।

उदाहरण के लिए: ( ln -s somedir/ linkname myuser के रूप में), (अगर किसी दिन उपयोगकर्ता की निर्देशिका में / कोई मौजूद नहीं है तो एक टूटी हुई कड़ी होगी)

फिर, sudo mv linkname targetlocation(एक मान्य लिंक उपलब्ध हो जाएगा targetlocation/somedir/मौजूद है)


आपका उत्तर पूरी तरह से समझने के बिना विस्तार और कठिन है। कृपया अधिक विस्तार प्रदान करने के लिए अपने उत्तर को संशोधित करने पर विचार करें।
जेम्स मर्ट्ज़

1

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था। मेरे लिए, मैं प्रतीकात्मक लिंक को रूट के रूप में भी चिन्हित नहीं कर सकता था, भले ही मैंने चामोद कहा हो। इसमें भ्रम जोड़ने के लिए, नॉटिलस मालिक / समूह को कुछ भी नहीं दिखा रहा था। बस मालिक खाली था। इसलिए मैंने रूट के रूप में चल रहे नॉटिलस का उपयोग करके प्रतीकात्मक लिंक को बदलने की कोशिश की क्योंकि चामोड काम नहीं कर रहा था और नॉटिलस दुर्घटनाग्रस्त हो गया !!

लेकिन मुझे लगता है कि मुझे इस समस्या का पता चल गया है। प्रतीकात्मक लिंक जिस निर्देशिका की ओर इशारा कर रहा था वह प्रतीकात्मक लिंक की तुलना में अलग-अलग अनुमतियाँ थी। इसलिए मैंने अपने उपयोगकर्ता / समूह के नाम पर लक्ष्य निर्देशिका (-h का उपयोग करके) को chmod'ed किया। फिर उसी को प्रतीकात्मक लिंक चोद दिया और यह काम किया! और नॉटिलस (रूट अनुमति के साथ) में प्रतीकात्मक लिंक के विवरण को देखना अब दुर्घटनाग्रस्त नहीं होता है।

तो दूसरों के लिए भी ऐसी ही समस्या है, लक्ष्य निर्देशिका / फ़ाइल की अनुमतियों की जाँच करें और सुनिश्चित करें कि यह उन अनुमतियों के साथ संगत है जिन्हें आप प्रतीकात्मक लिंक सेट कर रहे हैं।


1

ध्यान दें कि ownerसिम्लिंक को बदलना केवल तभी काम कर सकता है जब आप जिस नए उपयोगकर्ता को इसे असाइन करना चाहते हैं, वह लक्ष्य सुलभ हो।

उदाहरण के लिए, यदि आपका लक्ष्य एक फ़ोल्डर के अंदर है जिसे आप जिस उपयोगकर्ता को असाइन करना चाहते हैं, उसके पास पर्याप्त अधिकार नहीं हैं, तो ln -s commandव्यवहार ऐसा है कि वह कुछ भी नहीं करेगा।


1

एक निर्देशिका के लिए प्रतीकात्मक लिंक के लिए सोलारिस (S11.3 पर सत्यापित) के लिए आपको दौड़ने की आवश्यकता होगी

root@ac11x017:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx   1 root     root          16 Jun 15 09:08 dumpdir -> /data/dumpdir/
root@ac11x017:/var/tmp$ chown -RP oracle:oinstall dumpdir
lrwxrwxrwx   1 oracle   oinstall      16 Jun 15 09:09 dumpdir -> /data/dumpdir/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.