কোনও ব্যবহারকারীর ডিফল্ট হোম ডিরেক্টরি পরিবর্তন করার আদেশ


202

আমি জানতে চাই যে লিনাক্স / ইউনিক্সে ব্যবহারকারী হোম ডিরেক্টরি পরিবর্তন করার জন্য কোনও সাধারণ শেল কমান্ড রয়েছে কিনা (কোনও ফাইলের স্পর্শ না করে chsh এর অনুরূপ যা বিদ্যমান বৈধ ব্যবহারকারীর ডিফল্ট লগইন শেলকে পরিবর্তন করে) /etc/passwd। ধন্যবাদ


আপনি /etc/passwdফাইলটি স্পর্শ করতে চান না কেন ? আপনার দরকার হবে!
বেসিল স্টারিঙ্কেভিচ

11
stackoverflow.com/questions/20071714/… , বলেছে যে usermod -d /home/userxx /home/useryyলিনাক্স ডিফল্ট লগইন ডিরেক্টরিটি / হোম / ইউজারিতে পরিবর্তন করতে
ইব্রাহিম কুরাইশ

2
আপনি কেন ডিফল্ট হোম ডিরেক্টরি সম্পর্কে জিজ্ঞাসা করবেন ? আপনি কি কোনও বিদ্যমান বিদ্যমান ব্যবহারকারীর, বা ভবিষ্যতে যুক্ত সমস্ত ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করতে চান? লক্ষ্য করুন যে ডিফল্ট লগইন শেলটি chshপরিবর্তন করবেন না , তবে প্রদত্ত ব্যবহারকারীর কেবল লগইন শেল ... একটি নির্দিষ্ট ব্যবহারকারীর পরিবর্তন করতে কেবল সম্পাদনা করুনHOME/etc/passwd
বেসাইল স্টারিঙ্কেভিচ

উত্তর:


350

অন্য উত্তরে ইব্রাহিমের মন্তব্যটি একটি বিদ্যমান ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করার সঠিক উপায়।

ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করুন:

usermod -d /newhome/username username

usermodবিদ্যমান ব্যবহারকারীর সম্পাদনা করার আদেশ command
-d(সংক্ষিপ্তকরণ --home) ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করবে।

ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করুন + ব্যবহারকারীর বর্তমান ডিরেক্টরিতে থাকা সামগ্রীগুলি সরান:

usermod -m -d /newhome/username username

-m(এর জন্য সংক্ষিপ্তকরণ --move-home) সামগ্রীর ব্যবহারকারীর বর্তমান ডিরেক্টরি থেকে নতুন ডিরেক্টরিতে স্থানান্তরিত করবে।


1
কেবল সামগ্রীটি সরানো নয়, আমি এটিকে আরও সরানো পুরো ফোল্ডার = মূল ফোল্ডার ( /home/usernameসাধারণত) সরিয়ে ফেলার মতো দেখতে পাই ।
বেটলিস্ট

2
@STW এটি কি একটি বিপরীতমুখী কাজ? মানে যদি আমি এটি একবার চালাই এবং তারপরে পরামিতিগুলি ফ্লিপ করি তবে আমার হোম ডিরেক্টরিটি ঠিক আগের মতোই হবে?
ড্যানগোর্ডন

1
@ ড্যানগোর্ডন আপনি যুক্তিতে যা কিছু রাখবেন তা /newhome/usernameব্যবহারকারীর হোম ডিরেক্টরি হবে। এটি কী ছিল তা যদি আপনি জানেন তবে আপনি এটি তাদের পূর্ববর্তী হোম ডিরেক্টরিতে সেট করতে পারেন, তবে কোনও "পূর্বাবস্থায়" বিকল্প নেই।
STW

3
দ্বিতীয় কমান্ডের জন্য বিকল্পগুলির ক্রমটি ভুল। usermod -m -d /newhome/username usernameকাজ করে।
স্নোজলবার্ট

@ ডোমিনিক ধন্যবাদ - ওএস (ম্যাক বনাম লিনাক্স বনাম বিএসডি ইত্যাদির উপর ভিত্তি করে) আলাদা হওয়ার একটি সুযোগ রয়েছে অবশ্যই অবশ্যই এটি
STW

28

নতুন ব্যবহারকারী যুক্ত করার সময় লিনাক্স চেঞ্জ ডিফল্ট ব্যবহারকারী হোম ডিরেক্টরি থেকে :

একটি পাঠ্য সম্পাদক ব্যবহার করে কেবল এই ফাইলটি খুলুন, টাইপ করুন:

vi /etc/default/useradd

হোম ভেরিয়েবল দ্বারা সংজ্ঞায়িত ডিফল্ট হোম ডিরেক্টরি, নীচের হিসাবে পড়া পংক্তির সন্ধান করুন:

HOME=/home

প্রতিস্থাপন:

HOME=/iscsi/user

সংরক্ষণ করুন এবং ফাইলটি বন্ধ করুন। এখন আপনি নিয়মিত ইউজারডড কমান্ড ব্যবহার করে ব্যবহারকারী যুক্ত করতে পারেন:

# useradd vivek
# passwd vivek

ব্যবহারকারীর তথ্য যাচাই করুন:

# finger vivek

82
usermod -m -d /path/to/new/login/home/dir user বিদ্যমান ব্যবহারকারীর হোম ডিরেক্টরিটি একটি নতুন লগইন ডিরেক্টরিতে পরিবর্তন করে যা এটি ইতিমধ্যে উপস্থিত না থাকলে তৈরি হয়, বিকল্প -m বর্তমান হোম ডিরেক্টরি ডিরেক্টরিতে নতুন হোম ডিয়ারে স্থানান্তরিত করে
ইব্রাহিম কুরাইশ

23

গ্রহণযোগ্য উত্তরটি ত্রুটিযুক্ত, যেহেতু প্রাথমিক ব্যবহারকারী ফোল্ডারের সামগ্রীগুলি এটি ব্যবহার করে সরানো হয়নি। আমি এটি সংশোধন করার জন্য আরও একটি উত্তর যুক্ত করতে যাচ্ছি:

sudo usermod -d /newhome/username -m username

আপনার ব্যবহারকারীর নাম সহ ফোল্ডারটি তৈরি করার দরকার নেই এবং এটি আপনার ফাইলগুলিকে প্রাথমিক ব্যবহারকারী ফোল্ডার থেকে / newhome / ব্যবহারকারীর ফোল্ডারে সরিয়ে দেবে।


4

অন্যান্য পাঠক যদি adduserকমান্ডের বিষয়ে তথ্য সন্ধান করেন।

সম্পাদন করা /etc/adduser.conf

DHOMEপরিবর্তনশীল সেট করুন


0

এটি কিছু অ্যাপ্লিকেশনকে ভেঙে ফেলেছে এটি করার আরও ভাল উপায়

সিমলিংকের পাশাপাশি আরও সাম্প্রতিক ডিস্ট্রোস এবং ফাইল সিস্টেমগুলিতে, মূল হিসাবে আপনি বাইন্ড-মাউন্টও ব্যবহার করতে পারেন:

mkdir /home/username 
mount --bind --verbose /extra-home/username /home/username

এটি ডায়মনের মাধ্যমে সাবডিয়ারগুলিতে "হোম" ডিরেক্টরিটি "মাধ্যমে" অ্যাক্সেসের অনুমতি দেওয়ার জন্য দরকারী যা অন্যথায় সিমলিংকের (অ্যাপাচি, ftpd, ইত্যাদি) মাধ্যমে পাথিং এড়াতে কনফিগার করা হয়েছে।

অবশ্যই পুনঃসূচনাগুলি আবদ্ধ করতে আপনাকে অবশ্যই (বা init স্ক্রিপ্ট) মনে রাখতে হবে।

মধ্যে একটি উদাহরণ init স্ক্রিপ্ট /etc/fstabহয়

/extra-home/username /home/username none defaults,bind 0 0

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.