वर्तमान में लॉग इन उपयोगकर्ता की होम निर्देशिका को कैसे बदलें


17

मैं वर्तमान में एक CentOS सर्वर में लॉग-इन कर रहा हूँ और मैं से मेरे घर निर्देशिका परिवर्तन करना चाहते हैं /home/myuserName/के लिए/var/www/html/

मैंने नीचे दिए गए आदेश की कोशिश की:

> sudo usermod -d /var/www/html myuserName

लेकिन यह मुझे एक त्रुटि देता है:

usermod: user myUserName is currently logged in

2
मैं अनिश्चित हूं कि आपका क्या मतलब है, सत्र के लिए आपके घर की डायर HOME=/var/www/htmlबदल जाएगी ।
आर्केमर

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

जवाबों:


17

संक्षिप्त उत्तर : आप नहीं कर सकते।

लंबे उत्तर :

HOMEdir /etc/passwd6 वें क्षेत्र में सेट किया गया है । यह लॉगगिन पर पढ़ा जाता है, आपका शेल इस होम डायर के साथ शुरू होता है।

जो के लिए होम डायर को बदलने का उचित तरीका है:

  • जो लॉग ऑफ है।
  • usermod -d /new/home joe बाद के सत्र के लिए होम डायर को बदलने के लिए उपयोग करें।

एक बार सत्र चलाने के बाद, आपको दो काम करने होंगे:

  • $HOMEसत्र के लिए होम डायर को बदलने के लिए संपादित करें (सभी सक्रिय सत्र पर दोहराया जाना)।
  • sudo vipwअगले सत्र के लिए होम डायर संपादित करने के लिए उपयोग करें

इसके अलावा, ध्यान रखें कि आपके पास अनुमतियों / ऑनशिप के साथ कोई समस्या हो सकती है /var/www/html


1
संपादित करें / आदि / पासवार्ड ने हमेशा मेरे लिए काम किया। नीचे @ 7171u देखें
jeffmcneill

संपादन / आदि / बिना लॉगऑफ / लॉगऑन के पास?
12

उस खाते के लिए संपादन / आदि / पासवार्ड जो लॉग इन है, और फिर उसी खाते के साथ एक नया सत्र शुरू करते हैं, और यह नए होम डायर का पालन करता है। पहले से ही लॉग इन खाते के लिए, उस सत्र में अभी भी पर्यावरण में पुराने घर का स्थान है।
jeffmcneill

8

यदि आप उस उपयोगकर्ता से लॉग इन कर रहे हैं, जिस पर आप परिवर्तन करने का प्रयास कर रहे हैं, तो usermod कमांड काम नहीं करेगा।

Usermod पर मैनुअल पेज से यह कहता है:

CAVEATS usermod आपको लॉग इन करने वाले उपयोगकर्ता का नाम बदलने की अनुमति नहीं देगा। आपको यह सुनिश्चित करना होगा कि जब उपयोगकर्ता इस संख्यात्मक उपयोगकर्ता आईडी को बदला जा रहा है तो नामित उपयोगकर्ता किसी भी प्रक्रिया को निष्पादित नहीं कर रहा है। आपको किसी भी क्रॉस्टैब फ़ाइलों के स्वामी को मैन्युअल रूप से बदलना होगा। आपको किसी भी नौकरी के मालिक को मैन्युअल रूप से बदलना होगा। आपको NIS सर्वर पर NIS से संबंधित कोई भी परिवर्तन करना होगा।

किसी भिन्न उपयोगकर्ता के साथ लॉग इन करने और फिर से कमांड चलाने का प्रयास करें।

यदि यह संभव नहीं है, तो आप मैन्युअल रूप से / etc / passwd फ़ाइल को संपादित कर सकते हैं (जो वास्तव में usermod कमांड कर रहा है)। यदि आप ऐसा करते हैं तो सुनिश्चित करें कि आप अनजाने में कुछ मूर्खतापूर्ण करने की स्थिति में फाइल वापस कर दें।


7

/etc/passwdवर्तमान में लॉग इन किए गए उपयोगकर्ताओं की होम निर्देशिका को बदलने के लिए आपको फ़ाइल को संपादित करने की आवश्यकता है ।

संपादित करें /etc/passwdके साथ sudo vipwउपयोगकर्ता की और परिवर्तन होम निर्देशिका।

vipwकिसी भी डेटा भ्रष्टाचार को रोकने के लिए लॉक सेट करने के vimबाद से या अन्य संपादकों की तुलना में अत्यधिक अनुशंसित vipw


2

एक जोड़ी संभव समाधान, जो आप को हल करने की उम्मीद कर रहे हैं पर निर्भर करता है:

विकल्प 1. HOME=/var/www/htmlअपने .bashrc में जोड़ें

विकल्प 2. नाम बदलें /home/myusernameऔर फिर वांछित निर्देशिका के लिए एक सिमलिंक बनाएं।

mv /home/myusername /home/myusername-old
ln -s /var/www/html /home/myusername

बूरी आदत। उसके बाद, myusername-old अन्य उपयोगकर्ता द्वारा उपयोग नहीं किया जा सकता है
GeoMint

-2

आप इसे केवल अस्थायी रूप से कर सकते हैं। इसका मतलब है कि हर बार जब आप उस उपयोगकर्ता के रूप में लॉगिन करते हैं तो आपको यह एक कमांड चलाना होगा:

export HOME=/var/www/html

इस तरह, आप अधिकांश अनुप्रयोगों को यह सोच सकते हैं कि आपके घर की निर्देशिका जो भी स्थान आप ऊपर उपयोग करते हैं।

~को भी इंगित करना शुरू कर देंगे /var/www/html

मेरे साथ काम करने वाले अनुप्रयोगों में एनपीएम और मावेन थे।

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