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


68

আমি এর সাথে কিছু ব্যবহারকারী তৈরি করেছি:

$ useradd john

এবং আমি -mহোম ডিরেক্টরি তৈরি করতে এবং প্রতিটি ব্যবহারকারীর কঙ্কালের ফাইলগুলি অনুলিপি করতে পরামিতি নির্দিষ্ট করতে ভুলে গিয়েছিলাম । এখন আমি এটি করতে চাই এবং আমি সমস্ত ব্যবহারকারীকে পুনরায় তৈরি করতে চাই না (অবশ্যই একটি সহজ উপায় থাকতে হবে)। সুতরাং, ব্যবহারকারীর ডিরেক্টরিগুলি তৈরি এবং কঙ্কালের ফাইলগুলি অনুলিপি করার কোনও উপায় আছে?

আমি ডিরেক্টরিগুলি তৈরি করতে, সংশ্লিষ্ট ব্যবহারকারীর কাছে এগুলি ছুঁড়ে ফেলা, সমস্ত কঙ্কালের ফাইলগুলি অনুলিপি করে এবং এটি সংশ্লিষ্ট ব্যবহারকারীর কাছে ছুঁড়ে দেওয়ার বিষয়ে চিন্তা করেছি। তবে এর মতো কোনও কমান্ড যদি useradd -mআবার ব্যবহারকারী তৈরি না করে তবে ডিরেক্টরিগুলি তৈরি করে, এটি আরও ভাল।


এটি কি ব্যবহারকারীর একটি বৃহত তালিকার সাথে ঘটেছিল?
ডেভিড রিকম্যান

আমার এই সমস্যাটি সহ প্রায় 10 জন ব্যবহারকারী ছিল।
সিডি 1

আমি সাহায্য করতে পারি না তবে অনুভব করতে পারি যে রাহুলের কাছে আপনার প্রশ্নের উত্তরের উত্তর রয়েছে। আপনার নিজের উত্তর গৃহীত হওয়া উচিত?

উত্তর:


17

এটি মূর্খ ধারণার মতো শোনাচ্ছে তবে ব্যবহারকারীরা যদি আসলে কিছু না করে থাকেন তবে আপনি এটি করতে পারেন:

cat /etc/passwd | cut -f 1 -d : >/tmp/users.list

তারপরে শুধুমাত্র আপনার ইচ্ছামত ব্যবহারকারীদের রাখতে /tmp/users.list সম্পাদনা করুন। তারপরে:


for i in `cat /tmp/users.list`
do
    userdel $i
    useradd -m $i
done

যাইহোক, অনেকগুলি রেডহাট ভিত্তিক বিতরণ আপনি প্রথম লগইন করার সময় আপনাকে একটি নতুন হোম ডিরেক্টরি তৈরি করবে যখন এটি ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / ডিরেক্টরি / পাসওয়ার্ড / ইত্যাদি / ইত্যাদি দ্বারা নির্দিষ্ট করা হবে providing

এটি পরীক্ষা করতে, একটি "সু -" করুন এবং দেখুন এটি "সঠিক জিনিস" করে কিনা। যদি এটি না হয় তবে উপরের স্ক্রিপ্টটি বেশ সুন্দরভাবে কাজ করবে, আমি মনে করি।


1
হ্যাঁ, এটি কাজ করেছে, যদিও এটি নতুন ইউআইডি এবং জিআইডি তৈরি করেছে (তবে এটি কোনও সমস্যা ছিল না)। তবে আমি / ইত্যাদি / ছায়া থেকে পাসওয়ার্ডগুলি ব্যাকআপ করতে ভুলে গিয়েছিলাম, এখন ব্যবহারকারীদের আবার তাদের পাসওয়ার্ডগুলি সেট করতে হবে = /
সিডি 1

যদি সেগুলি সেগুলি সম্প্রতি তৈরি করে তবে তিনি তা করতে সক্ষম হবেন: বিড়াল / ইত্যাদি / পাসডাব্লুড egrep '^ \: [0-9] {4} \:' | কাট -f 1 -d:> /tmp/users.list এটিকে কেবল বৈধ ব্যবহারকারীদের ইউআইডি দখল করা উচিত, সিস্টেম ব্যবহারকারীদের নয়।
ডেভিড রিকম্যান

পাসওয়ার্ড সম্পর্কে কি, তারা কি একই থাকে? আমার ভয় নেই!
গণিত

for i in $(awk -F: '{print $1 }' /etc/passwd)
রাহুল পাতিল

গ্রেপ বা বিড়াল এবং পাইপ দিয়ে কাটা ব্যবহার করুন, কেন সরাসরি এই উপায়ে নয়? কাট -ফ 1
ডি

97

এছাড়াও আপনি ব্যবহার করতে পারেন mkhomedir_helper

Usage: /sbin/mkhomedir_helper <username> [<umask> [<skeldir>]]

13
এটি হ'ল একমাত্র উত্তর যা আসলে কোনও 10 লাইনের স্ক্রিপ্ট ছাড়াই প্রশ্নের উত্তর দেয়।
ব্রেন্ডন বাইার্ড

এই এবং প্যাম উত্তরটি এখানে সেরা, ধন্যবাদ। যদি আপনি এগুলি এড়াতে পারেন তবে এই ফাইলগুলিতে কখনই হাতছাড়া করবেন না।
h4unt3r

1
dka @ dev-04: / $ / sbin / mkhomedir_helper dka dka @ dev-04: / d cd bash: cd: / home / dka: এরকম কোনও ফাইল বা ডিরেক্টরি নেই
দিমিত্রি কোপ্রিভা

@ দিমিত্রিকোপ্রিভা আপনি কি এটিকে মূল হিসাবে আবিষ্কার করেছেন sudo /sbin/mkhomedir_helper dka? /homeডিরেক্টরি জন্যে rootব্যবহারকারী, এবং তাই আমি কল্পনা হবে এক উহার একটি সাব-তৈরি করতে রুট হতে হবে।
জোনাথন

15

আপনাকে ম্যানুয়ালি ব্যবহারকারী ডিরেক্টরি তৈরি করতে হবে। এর জন্য তিনটি পদক্ষেপ প্রয়োজন:

  1. সম্মতিতে ডিরেক্টরি তৈরি করুন /etc/passwd, সাধারণত ইতিমধ্যে একটি / হোম / লগইন এন্ট্রি থাকবে।
  2. / ইত্যাদি / স্কেল থেকে প্রাথমিক ফাইলগুলি অনুলিপি করুন
  3. এবং শেষ পর্যন্ত সঠিক অনুমতি সেট করুন:

    • mkdir /home/YOU
    • cd /home/YOU
    • cp -r /etc/skel/. .
    • chown -R YOU.YOURGROUP .
    • chmod -R go=u,go-w .
    • chmod go= .

বিটিডাব্লু: আমি সর্বদা -mইউজারডের বিকল্পটি মিস করি। কমপক্ষে ডেবিয়ান ভিত্তিক সিস্টেমে একটি adduserকমান্ড থাকা উচিত যা আমি ইউজারডের চেয়ে বেশি সুপারিশ করি। আপনি যদি -mবিকল্পটি মিস করেন তবে এটি deluserউপযুক্ত বিকল্পগুলির সাথে ব্যবহারকারীকে পুনরায় তৈরি করার বিষয়েও বিবেচনা করা উপযুক্ত।

সম্পাদনা করুন: -rডিরেক্টরিগুলিও অনুলিপি করার জন্য যুক্ত করা হয়েছে।


এটি করেছেন: ব্যবহারকারীর নাম = myusername; mkdir / home / $ ব্যবহারকারীর নাম; সিপি / ইত্যাদি / স্কেল / * /etc/skel/.* / হোম / $ ব্যবহারকারীর নাম; chown -R $ ব্যবহারকারীর নাম: $ ব্যবহারকারীর নাম / হোম / $ ব্যবহারকারী নাম; chmod -R 755 / home / $ ব্যবহারকারীর নাম;
আকি

ব্যক্তিগতভাবে আমি 755 chmod পছন্দ করি না, কারণ এটি ব্যবহারকারীদের বাড়ির অন্যান্য ব্যবহারকারীদের মধ্যে গুপ্তচরবৃত্তি করতে দেয়। আমি মনে করি প্রতিটি ব্যবহারকারীর স্পষ্টভাবে অন্যদের অ্যাক্সেসের মঞ্জুরি দেওয়া উচিত। public_htmlঅন্তত xবিট সেট হিসাবে প্রয়োজন হিসাবে , আমি chmod 0711প্রতিটি বাড়িতে public_htmlএবং ডিফল্ট হিসাবে অনুরূপ ডিরেক্টরিগুলিতে সুপারিশ করব ।
গণিত

এছাড়াও, স্কেলের জন্য সিপি-আরআর ব্যবহার করুন, অন্যথায় এটি ডিরেক্টরিগুলি (.ssh) অনুলিপি করে না।
আকি

আমার সিস্টেমে (আর্ম লিনাক্স এআরএম) cp -r /etc/skel/.*পুনরাবৃত্তি করে / ইত্যাদি / এবং এখান থেকে সমস্ত ডেটা অনুলিপি করে (/etc/skel/.* ম্যাচ / ইত্যাদি / স্কেল / .. আমি প্রত্যাশা করি)। Superuser.com/a/61619/22153 থেকে সমাধানটি কাজ করছে বলে মনে হচ্ছে: সিপি -আর / ইত্যাদি / স্কেল / হোম / ব্যবহারকারী (/ হোম / ব্যবহারকারীর কমান্ডটি চালানোর আগে উপস্থিত থাকতে হবে না)
zpon

আমার ধারণা আপনি শেল গ্লোববিং (ডট) *দিয়ে প্রসারিত হন .। তাই ..মিলেছে। আমি কি সঠিক? অনেকগুলি শেল এই জাতীয় আচরণের কারণে এটি ডিফল্ট প্রতি অক্ষম করে। আপনি কোন শেল ব্যবহার করেন?
গণিত

14
mkdir -p /home/john
chown john:john /home/john
usermod -d /home/john john

আমি বিশ্বাস করি সেই কৌশলটি করা উচিত


2
এটা বলে: usermod: no changes। এবং ডিরেক্টরি তৈরি করা হয়নি। এটি -mবিকল্পের সাথে কাজ করে না ।
সিডি 1

1
ঠিক আছে. আমি বুঝতে পেরেছি কেন এটি কাজ করে না, ইউজারড কেবল অন্যথায় নির্দিষ্ট না করে কেবলমাত্র home HOME_DIR / home- এ রাখতেন। এটি এখন মনে হয় এর পরিবর্তে এটি স্বয়ংক্রিয়ভাবে / হোম / $ USER- তে রেখে দেবে। ইউরোডমড-ডি / হোম / জন 2-মি জন এর জন্য একটি সস্তা উপায় হতে পারে তারপরে ইউজারমড-ডি / হোম / জন-এম চালান।
ডেভিড রিকম্যান

কিছু নয় যে কাজ করে না।
ডেভিড রিকম্যান

1
আচ্ছা অন্তত আপনি নতুন কিছু শিখেছেন।
ডেভিড রিকম্যান

1
আপনি etc নতুন ফাইলগুলির জন্য / ইত্যাদি / স্কেল / + ক্লাউন রিকার্সের সামগ্রীগুলি অনুলিপি করতে ভুলে গেছেন। এখানে ব্যবহারকারী ডিরেক্টরিটি নিবন্ধিত হয়েছে তবে তৈরি করা হয়নি, কারণ ব্যবহারকারীর কাজ কিছুই করবে না, ব্যবহারকারী আধুনিক কিছুই করবে না।
আকি

9

ভবিষ্যতে যে কোনও ব্যবহারকারীর কাছে এটি কোনও সমস্যা হতে না থেকে আপনি প্রতিরোধের জন্য পাম_মখোমেডির জাতীয় কিছু ব্যবহার করতে পারেন । pam_mkhomedir হ'ল একটি প্যাম মডিউল যা ব্যবহারকারীর হোম ডিরেক্টরি ডিরেক্টরিতে উপস্থিত না থাকলে স্বয়ংক্রিয়ভাবে তৈরি করে এবং এটিকে / ইত্যাদি / স্কেল (বা আপনার দ্বারা নির্দিষ্ট করা স্কেল ডিরেক্টরি) থেকে পপুলেট করে।

এটি একটি দুর্দান্ত স্কেলযোগ্য পদ্ধতির কারণ এটি যদি ভবিষ্যতে আপনার ব্যবহারকারী সংগ্রহস্থলটিকে LDAP এর মতো ডিরেক্টরি পরিষেবাতে স্যুইচ করে তবে এই সমস্যার সমাধান করতে থাকবে।


4

আমার ক্ষেত্রে, বাড়ির আয়তন দূষিত হয়েছিল এবং আমি সিদ্ধান্ত নিয়েছিলাম যে এটি খুব সহজেই স্ক্র্যাচ থেকে পুনর্নির্মাণ করুন কারণ খুব বেশি ডেটা জড়িত ছিল না তবে আমি ব্যবহারকারীদের লগইন তথ্য রাখতে চাই, তাই আমি এই স্ক্রিপ্টটির সাহায্যে ম্যানুয়ালি হোম ডিরেক্টরিগুলি পুনরায় তৈরি করেছি:

#!/bin/bash
cat /etc/passwd | while IFS=: read n x i g c d r
do
  # my system has uid started at 1000, but has nfsnobody at 65534:
  if [[ "$i" -ge 1000 && "$i" -le 65000 && ! -x "$d" ]]
  then
    cp -av /etc/skel "$d"
    chown -R "$i:$g" "$d"
    # may needed in SELinux system:
    restorecon -R "$d"
    # add your chmod as your need:
    chmod -R o-rw "$d"
  fi
done

2

আপনি /etc/login.defsধারণ করতে সম্পাদনা করলে

CREATE_HOME yes

তারপরে ভবিষ্যত ব্যবহারকারীদের জন্য হোম ডিরেক্টরিগুলি স্বয়ংক্রিয়ভাবে তৈরি করা হবে, যদি না আপনি সিস্টেমটিকে এটি না করতে বলেন।

আরেকটি বিকল্প হ'ল লগইনগুলির জন্য পিএএম ব্যবহার করা এবং প্রথম লগইনে স্বয়ংক্রিয়ভাবে হোমডির তৈরি করতে পাম_মখোমেডির মডিউলটি ব্যবহার করা।


0

একটি useraddকরার পরে আমার প্রথম পদক্ষেপটি হল su - <user>

হোম ডিরেক্টরি তৈরি করে, কঙ্কাল ইত্যাদি অনুলিপি করে - কমপক্ষে CentOS 4 বাক্সে আমি প্রায়শই এটি করি।


0

ব্যবহারকারী জন এর সাথে লগইন করুন এবং একটি শেল থেকে লিখুন:

xdg-user-dirs-update

এটাই! Sudo বা su ব্যবহার করবেন না, কিছু ডিরেক্টরি তৈরি করতে আপনার রুট অ্যাক্সেসের প্রয়োজন হবে না। মূল অ্যাকাউন্ট থেকে আপনি ব্যবহার করতে পারেন:

sudo -u john xdg-user-dirs-update

এইভাবে, আপনি জন হিসাবে কমান্ডটি প্রয়োগ করবেন, যদি আপনি একাধিক ব্যবহারকারীর সাথে ভুল করে থাকেন তবে এটি কার্যকর হতে পারে।


-1

mkhomedir_helper $USERNAMEকমান্ড ঠিক এটিই করে।


1
দু'বছর আগে ইতিমধ্যে অন্য উত্তরটি কী ব্যাখ্যা করেছে তার পুনরাবৃত্তি করে কোনও মূল্য যুক্ত হয় না।
ক্যাস্পারড

-2

আপনি কেবল / ইত্যাদি / পাসডাব্লু সম্পাদনা করতে পারবেন। দ্বিতীয় ক্ষেত্রের দ্বিতীয়টি হল ব্যবহারকারীর হোম ডিরেক্টরি।

greeblesnort:x:1000:1000:greeblesnort,,,:/home/greeblesnort:/bin/bash

তারা ব্যবহারকারী ইতিমধ্যে তৈরি করা হয়েছিল। হোম ডিরেক্টরিগুলি তৈরি করা হয়নি কারণ সে একটি স্যুইচ ভুলে গেছে।
ডেভিড রিকম্যান

ব্যবহারকারীর হোম ডিরেক্টরি পরিবর্তন করার অর্থ আমি বোঝাতে চাইনি, আমি যুক্ত করতে চাইছি ডিরেক্টরিটি তৈরি করা এবং কঙ্কালের ফাইলগুলি ব্যবহারকারীকে যুক্ত করার পরে উপযুক্ত অনুমতি দিয়ে কপি করা।
সিডি 1

-2
usermod -d /home/john john

অথবা

usermod --home /home/john john

এবং পড়া

man usermod

;)


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