হোম ডিরেক্টরি তৈরি হচ্ছে না


80

আমি উবুন্টুতে সিস্টেম প্রশাসন বোঝার চেষ্টা করছি। সুতরাং, উদাহরণ হিসাবে, আমি ব্যবহার করে একটি ডামি ব্যবহারকারী তৈরি করি

sudo useradd -d /home/linda linda

এবং passwdপাসওয়ার্ড তৈরি করতে। আমি পরীক্ষা করে দেখি যে এন্ট্রি ব্যবহার করে করা হয়েছেcat /etc/passwd

linda:x:1004:1004::/home/linda:/bin/sh

যাইহোক, আমি যখন su - linda, আমি পেতে

No directory, logging in with HOME=/

এবং প্রকৃতপক্ষে, কোনও হোম ডিরেক্টরি তৈরি করা হয়নি। আমি কী মিস করছি?

ধন্যবাদ।

উত্তর:


87

man useradd বলে:

useradd is a low level utility for adding users. On Debian,
administrators should usually use adduser(8) instead.

নোট করুন low level utility

কোনও ব্যবহারকারী যুক্ত করতে adduserপরিবর্তে ব্যবহার করুন। এটি আরও উচ্চ-স্তরের ইউটিলিটি।


তদ্ব্যতীত, -dবিকল্পটি তাকান:

   -d, --home HOME_DIR
       The new user will be created using HOME_DIR as the value for the
       user's login directory. The default is to append the LOGIN name to
       BASE_DIR and use that as the login directory name. The directory
       HOME_DIR does not have to exist but will not be created if it is
       missing.

The directory will not be created if it is missing.

সাধারণত থেকে দূরে রাখা useradd, adduserপরিবর্তে ব্যবহার করুন।


2
ওপেনের প্রতিরক্ষাতে, যখন আমি "দেবিয়ান অন" পড়ি, তখন আমি ভেবেছিলাম যে এটি উবুন্টু ডিগ্রোসের বিরোধিতা হিসাবে ডেবিয়ানকে বোঝায়। আমি অবগত যে উবুন্টু দেবিয়ান উপর নির্মিত কিন্তু ভেবেছিল যে কোনও পার্থক্য করা হচ্ছে।
কিথ বেনেট

1
আমি ব্যবহার করেছি adduserতবে এখনও তৈরি হোম ডিরেক্টরিতে কেবল একটি ফাইল রয়েছে examples.desktopএবং অন্য কিছুই নেই। আমি কীভাবে উবুন্টুকে ডিফল্ট ফোল্ডারগুলি ডেস্কটপ, ডাউনলোডগুলি এবং ইত্যাদি তৈরি করতে পারি? (আমি ssh এর মাধ্যমে লগ ইন করছি)
এমসিএক্সচেঞ্জ

হাই, দুঃখিত দেরীতে প্রতিক্রিয়া এবং কেবল অনুমান করা তবে আমি মনে করি যে এই ফোল্ডারগুলি প্রথম জিইউআই লগইনে স্বয়ংক্রিয়ভাবে তৈরি হয়েছিল। ভেবেছিলেন লোকেরা এখনও এখানে অবতরণ করতে পারে;)
derHugo

adduserকেউ /etc/login.defs- এ "না" হিসাবে CREATE_HOME পরিবর্তন করে থাকলে ডিরেক্টরিটি তৈরি করবে না। আপনি -mপতাকা দিয়ে ওভাররাইড করতে পারেন ।
নুমেনন

31

আপনি বাড়ির দির তৈরি করেই এটি ঠিক করতে পারেন।

mkdir /home/linda
chown linda:linda /home/linda

আবার লগ ইন করার চেষ্টা করুন এবং এটি কাজ করা উচিত।


13

অনুসারে man useradd, -d /home/lindaবিকল্পটি ডিরেক্টরিটি তৈরি করবে না /home/linda, যদি এটি অনুপস্থিত থাকে। সুতরাং, আপনাকে এটি ম্যানুয়ালি তৈরি করতে হবে। এটি করতে, টার্মিনালে নিম্নলিখিত নির্দেশগুলি চালনা করুন:

sudo -i                            #to get root privileges
mkdir /home/linda                  #to create the directory /home/linda
cp -rT /etc/skel /home/linda         #to populate /home/linda with default files and folders
chown -R linda:linda /home/linda   #to change the owner of /home/linda to user linda

আরও দেখুন: অ্যাকাউন্ট তৈরির পরে কীভাবে ব্যবহারকারী হোম ফোল্ডার তৈরি করবেন?


7

/etc/defaults/useraddআপনি ডিফল্ট পরিবর্তন করতে চান কিনা দেখুন । ব্যবহার করুন:

useradd -m -d /home/joe -s /bin/bash


"ম্যান ইউজেডড অনুসারে, -d / home / linda অপশন ডিরেক্টরি / হোম / লিন্ডা তৈরি করবে না" তাই না, এটি কোনও সমাধান নয়।
অ্যাস্ট্রজুয়ানলু

ইউজারডড ম্যান পেজ অনুসারে, -m, --create-home Create the user's home directory if it does not exist. The files and directories contained in the skeleton directory (which can be defined with the -k option) will be copied to the home directory. useradd will create the home directory unless CREATE_HOME in /etc/login.defs is set to no.-২০০ মিটার পতাকাটি এর জন্য: @ অ্যাস্ট্রোজুয়ানলু
মাইলস

5

আপনি এটি তৈরিতেও পরিবর্তন /etc/pam.d/common-sessionকরতে পারেন যাতে প্রথমে লগ ইন করে কোনও ব্যবহারকারীর হোম ডিরেক্টরি তৈরি করা যায় that সেই ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন।

...
session required pam_mkhomedir.so

এটি বিশেষত কার্যকর যদি আপনার সিস্টেমটি এমন কোনও নেটওয়ার্কে থাকে যেখানে ব্যবহারকারীরা আপনার মেশিনে বাহ্যিকভাবে পরিচালিত হয়, উদাহরণস্বরূপ এলডিএপি দ্বারা।


5

-mপরিবর্তে ব্যবহার করুন -d, সুতরাং ডিরেক্টরিটি আপনার জন্য তৈরি করা হবে:

sudo useradd -m linda

এছাড়াও, যদি lindaএকজন সাধারণ ব্যবহারকারী হন তবে আপনি সম্ভবত এটি /bin/bashডিফল্ট হিসাবে ব্যবহার করতে চান shell:

sudo useradd -m linda -s /bin/bash


3

নীচে প্রবেশ করুন /etc/login.defsএবং সংরক্ষণ করুন:

CREATE_HOME yes

এখন, ব্যবহারকারীর অ্যাকাউন্ট তৈরি করার চেষ্টা করুন। এটি হোম ডিরেক্টরি তৈরি করবে।


এটা আমার জন্য কাজ করে। আমার কাছে একটি প্রাথমিক স্ক্রিপ্ট থাকা দরকার যা লিনাক্সের বিভিন্ন স্বাদে ব্যবহারকারীদের দূরবর্তীভাবে যুক্ত / পরিচালনা করতে পারে। এই পরিবর্তনের পরে আমার কোড সমস্ত সার্ভারে একই ফলাফল উত্পন্ন করে। ধন্যবাদ।
sdkks

1

ব্যবহার adduser

DESCRIPTION

 adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea
   tures.  adduser and addgroup can be run in one of five modes:

useraddআপনাকে নিজেই সমস্ত বিকল্প যুক্ত করতে হবে। অনুমতি এবং কিছু অন্যান্য জিনিস সহ। adduserএটি বুদ্ধিমান ডিফল্টের ভিত্তিতে করে (এবং নিজেই হোম ডির যোগ করে)।

আপনার যদি অ্যাড্রেসার ব্যবহার করতে হয় তবে সম্ভবত -d বিকল্পের সাথে -b বিকল্পের প্রয়োজন!


1

আপনি /home/lindaব্যবহারকারী হিসাবে লিন্ডা যুক্ত করার আগে উপস্থিত না থাকলে আপনাকেও যুক্ত করতে হবে --create-home

sudo useradd --create-home linda

1

সম্ভবত যে কারণে আপনার তৈরি করা home ডিরেক্টরিতে ছিল না কারণ আপনার আছে কি না CREATE_HOME yes/etc/login.defs

@ ওএমপিএস বা @ রাদু রেডানু যা বলেছিলেন তা অনুসরণ করে আপনি এটি ঠিক করতে পারেন।

তবে ভবিষ্যতে নীচের একটি আদেশ ব্যবহার করে এই সমস্যাটি কাটিয়ে উঠতে পারে এমন অনেকগুলি উপায়:

  • ফলাফল sudo adduser linda

    Adding user 'linda'
    Adding new group 'linda' (1001) ...
    Adding new user 'linda' (1001) with group 'linda' ...
    Creating home directory '/home/linda' ...
    Copying files from '/etc/skel' ...
    ****Password confirmation****
    ****Name prompt****

    অপশন নির্দিষ্ট না করা /etc/adduser.confথাকলে অ্যাডুজারের জন্য ডিফল্টগুলি বেছে নেওয়া হয় --homeমনে রাখবেন যে এটি /etc/skelসামগ্রীগুলিও অনুলিপি করে ।

  • এর সাথে অ্যাডুজার ব্যবহার করুন --home

    sudo adduser --home /home/linda

পূর্ববর্তী বিকল্প হিসাবে একই আপনি যদি এটি করতে চান তবে ব্যবহারকারীদের হোম ডিরেক্টরি আপনি যে ব্যবহারকারীর নাম ব্যবহার করেছেন তার চেয়ে আলাদা।

  • useraddকমান্ডের জন্য বেস ডিরেক্টরিটি নির্দিষ্ট করুন :

    sudo useradd -b /home
  • Login.defs ব্যবহার করুন: /etc/login.defsকরার আগে নীচের লাইনটি সংশোধন করুন এবং যুক্ত করুন sudo useradd:

    CREATE_HOME   yes

দ্রষ্টব্য: আপনি যদি করেন তবে man login.defsএটি বর্তমানে বলেছে

শ্যাডো পাসওয়ার্ড স্যুট দ্বারা সরবরাহ করা হত বেশিরভাগ কার্যকারিতা এখন পিএএম দ্বারা পরিচালিত হয়। সুতরাং, /etc/login.defs আর Passwd (1) দ্বারা ব্যবহৃত হয় না, বা লগইন (1) দ্বারা কম ব্যবহৃত হয়, এবং su (1)। পরিবর্তে সম্পর্কিত PAM কনফিগারেশন ফাইলগুলি পড়ুন।

  • Pam_mkhomedir PAM মডিউলটি ব্যবহার করুন: man pam_mkhomedirপৃষ্ঠা থেকে , নীচে লাইনটি এতে যুক্ত করুন /etc/pam.d/login:

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