अनुमतियों को स्वामी से इनकार कर दिया गया, हालांकि यह 666 इनशीट डायरेक्टरी में सेट है


12

मैंने हाल ही में .ssh निर्देशिका के साथ खिलवाड़ किया है। कुछ अनुमति परिवर्तन किए, मुझे लगता है और अब यह मुझे इसे अब और एक्सेस नहीं करने देगा। मैं इसे रूट यूजर (sudo -i) के रूप में एक्सेस कर सकता हूं लेकिन सोमेश के रूप में नहीं

मुझे अनुमति दी जाती है कि जब सूची प्रदर्शित की जाए या फाइलिंग की जाए तब भी यह फाइलों को दिखाए

ls: cannot access /home/somesh/.ssh/amazon.pem: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa: Permission denied
ls: cannot access /home/somesh/.ssh/known_hosts: Permission denied
ls: cannot access /home/somesh/.ssh/id_rsa.pub: Permission denied
total 0
-????????? ? ? ? ?            ? amazon.pem
-????????? ? ? ? ?            ? id_rsa
-????????? ? ? ? ?            ? id_rsa.pub
-????????? ? ? ? ?            ? known_hosts

रूट और एलएस के रूप में लॉग इन करने से निम्नलिखित परिणाम मिलते हैं

# ls -l /home/somesh/ -a |grep ssh
drw-rw-rw-  2 somesh somesh 4096 Aug 27 15:45 .ssh

यहां तक ​​कि अंदर की फाइलें भी .sh का स्वामित्व सोमेश के पास है: सोमेश और chm

-rw-rw-rw- 1 somesh somesh 1692 Aug 27 15:45 amazon.pem
-rw-rw-rw- 1 somesh somesh 1675 Aug 25 20:01 id_rsa

5
देखें कि क्यों chmod 644 निर्देशिकाओं को दुर्गम बनाता है? । AFAIK ~/.sshनिर्देशिका के लिए सही अनुमति है 700( drwx------)।
स्टीलड्राइवर

जवाबों:


21

स्टीलड्राइवर सही है। निर्देशिका में आपको xफ़ाइलों को सूचीबद्ध करने में सक्षम होने के लिए ध्वज की भी आवश्यकता होती है।

का उपयोग करके निर्देशिका को ठीक chmod 700 ~/.sshकरने से आपको इस (सही) स्थिति में आने में मदद मिलेगी:

$ ls -ld ~/.ssh
drwx------. 2 user user 4096 Aug 26 10:37 /home/user/.ssh

इसके अलावा, आपको अपनी कुंजी का उपयोग करके chmod 600 ~/.ssh/id_rsaऔर chmod 644 ~/.ssh/*.pubइसे प्राप्त करने के लिए ठीक करना चाहिए :

$ ls -l ~/.ssh/
-rw-------. 1 user user  1766 Mar  7  2014 id_rsa
-rw-r--r--. 1 user user   415 Mar  7  2014 id_rsa.pub

मैं इसे पहले खुद ही ठीक करने में कामयाब रहा, कहीं और कॉपी करके और फिर इसे कॉपी करके
सोहट

-2

जब आप किसी भी निर्देशिका पर कमांड ls -l चलाते हैं , तो पहला कॉलम अनुमति स्तंभ होता है, जिसकी व्याख्या निम्न प्रकार से की जाती है:

1 ------------- 2 3 4 ------- 5 6 7 ------- 8 9 10

(TYPE) ---- (उपयोगकर्ता) ----- (समूह) ---- (अन्य)

टाइप: यदि '-' , यह एक फाइल है। यदि 'd' यह एक डायरेक्टरी है।

अनुमतियाँ: पढ़ें: 4, लिखें: 2, निष्पादित करें: 1

तो पढ़ने के लिए, लिखें और अपनी अनुमतियों को निष्पादित करें उपयोगकर्ता समूह में 7 होंगे ।

आप उपयोग कर सकते हैं

sudo chmod 7 6 6 file_name 

या

sudo chmod -R u+x /home/somesh/.ssh 

-R - यह मूल फ़ोल्डर और बच्चे की वस्तुओं की अनुमति को संशोधित करता है


2
मैं टाइप भाग नहीं समझता; भी chmod 700 file_nameऔर chmod u+x file_nameदो पूरी तरह से अलग चीजें करते हैं। पहला व्यक्ति अनुमतियों को सेट करता है rwx/---/---, दूसरा केवल xमालिक के लिए बिट सेट करता है (और इससे शुरू होने से 666फ़ाइल को बदल जाएगा 766, नहीं 700)।
कोस

1
@kos, s / he का अर्थ है स्ट्रिंग में पहला फ़ील्ड फ़ाइल प्रविष्टि के प्रकार को इंगित करता है। एक -चरित्र का मतलब है कि यह एक "सामान्य" फाइल है। एक dअर्थ है कि यह एक निर्देशिका है। अन्य भी हैं, जैसे c, l(प्रतीकात्मक लिंक के लिए) s, और अन्य OSes के लिए भी।
जोश

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