ব্যাশ স্ক্রিপ্টের মাধ্যমে কোনও ব্যবহারকারী অ্যাকাউন্ট যুক্ত করার সঠিক উপায়


15

আমি এখন যে স্ক্রিপ্ট কোডটি ব্যবহার করছি তা এখানে:

getent group $MYGROUP
if [ $? -ne 0 ] ; then
    sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"

এই পদ্ধতিরটি ওপেনসুজে ভাল কাজ করে। তবে এটি উবুন্টুতে তৈরি হওয়া ব্যবহারকারী অ্যাকাউন্টে বেশ কয়েকটি সমস্যা রয়েছে তাই আমি এখানে সহায়তা চাই।

  • টার্মিনাল প্রম্পট সেট করা নেই ( echo $PS1কিছুই প্রত্যাবর্তন করে)
  • তীর কী এবং ট্যাব কী টার্মিনালে সঠিকভাবে কাজ করে না
  • পাসওয়ার্ডটি কাজ করছে বলে মনে হচ্ছে না (যদিও আমি এখনও এই সমস্যাটি ঠিক কী তা পরিষ্কার)
  • এই নতুন ব্যবহারকারীর জন্য নির্ধারিত / ইত্যাদি / sudoers অধিকার সম্মানিত হয় না

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

অবশেষে, আমি এবং এর মধ্যে পার্থক্য বুঝতে চাই । উদাহরণ হিসেবে বলা যায়, আমি জানি যা কঙ্কাল ডিরেক্টরি দ্বারা ব্যবহৃত হয় চান হিসাবে যে কারণে হতে পারে যেমন অপ্রত্যাশিত কাজ করছে (কারণ আমি শুধু ডিফল্ট গৃহীত)।adduseruseraddadduseruseradd

ধন্যবাদ


1
পার্থক্য হিসাবে: ইউজারডড ম্যান পৃষ্ঠা থেকে ( man useradd): ব্যবহারকারীদের যুক্ত করার জন্য ইউর্যাডড নিম্ন স্তরের ইউটিলিটি। ডেবিয়ানে প্রশাসকদের সাধারণত পরিবর্তে অ্যাডুজার (8) ব্যবহার করা উচিত।
গুনবার্ট

এছাড়াও, sudo su -c "cmd arg1 arg2"সমান sudo cmd arg1 arg2
এনজোটিব

@ এনজোটিব ধন্যবাদ এগুলি উবুন্টুর সমতুল্য, কারণ তারা ওপেনসুজে নেই know অতএব, আমি sudo su -c "cmd arg1 arg2"এটি ব্যবহার চালিয়ে যাব যাতে এটি কাজ করার জন্য আমার প্রয়োজন যেখানেই কাজ করে।
মাউন্টেনএক্স

adduserএকটি হল Perl পার্থক্য যাতে আপনি স্ক্রিপ্ট কটাক্ষপাত করা করতে পারেন, স্ক্রিপ্ট 1000 লাইন দীর্ঘ বেশি।
এনজোটিব

@ এঞ্জোটিব হ্যাঁ, আমি পড়ছি adduserকিন্তু আমি পার্ল জানি না। সুতরাং এটি আমার পক্ষে ভাল পদ্ধতির নয়।
মাউন্টেনএক্স

উত্তর:


14

আমার সমাধানটি এখানে সরবরাহ করা হয়েছিল: /unix/82923/proper-way-to-add-a-user-account-via-bash-script দ্বারা উলরিচ শোয়ার্জ এবং জোসেফ আর । আমার প্রধান জিনিসটি -s /bin/bashআমার বিদ্যমান useraddকমান্ডটিতে যুক্ত করা এবং মুছে ফেলা -p passwordযা কোনও এনক্রিপ্ট হওয়া পাসওয়ার্ডের প্রত্যাশা করে।

sudo su -c "useradd mynewuser -s /bin/bash -m -g $PRIMARYGRP -G $MYGROUP"

তারপরে এটি করুন:

sudo chpasswd << 'END'
mynewuser:password
END

6
echo mynewuser:password | sudo chpasswdখুব কাজ করে।
ফেলিক্স রাবে


2

আমার স্ক্রিপ্ট যা স্বয়ংক্রিয়ভাবে ssh কী লগইন এবং কোনও পাসওয়ার্ড সহ কোনও পরিষেবা অ্যাকাউন্ট তৈরি করে

#add service group/user
addgroup service-runner
useradd devops-service --create-home --shell /bin/bash --groups service-runner
#gpasswd -a devops-service sudo #allowing sudo requires password, and not a good idea for a service account.
mkdir /home/devops-service/.ssh
chmod 700 /home/devops-service/.ssh
cat devops-service@v2-20150312.pub >> /home/devops-service/.ssh/authorized_keys
chown devops-service:devops-service /home/devops-service -R

fyi, আমার স্ক্রিপ্টটি ব্যবহার করার পরে, আমি দেখতে পাচ্ছি যে "sudo" পরিষেবা অ্যাকাউন্টের সাথে অনেকটা অকেজো, কারণ কোনও পাসওয়ার্ডের অর্থ এটি সুডো ব্যবহার করতে পারে না। ভিসুডোর মাধ্যমে নো-পাসওয়ার্ড সুডোর অনুমতি দেওয়ার জন্য আপনি এটি কনফিগার করতে পারেন তবে কোনও স্ক্রিপ্টে কীভাবে এটি স্বয়ংক্রিয় করবেন তা আমি জানি না। এছাড়াও, সম্ভবত নো-পাসওয়ার্ড সুডো সহ কোনও পরিষেবা অ্যাকাউন্ট ভাল (সুরক্ষা) ধারণা নয়।
জেসনস

0

আমি মনে করি আপনি কেবল নিজের স্ক্রিপ্টে একটি শর্ত ব্যবহার করতে পারেন, এরকম কিছু

if grep -q 'Ubuntu\|Debian' /etc/issue; then
    adduser .....
else
    useradd .....
fi

(ফাইলটি /etc/issueওপেনসুএসে উপস্থিত রয়েছে কিনা তা যাচাই করতে পারে না , অন্যথায় আপনি শর্তটিকে এই জাতীয় কোনও ফাইলের অস্তিত্বের উপরে রাখতে পারেন)।


কেন কেবল বা তার পছন্দগুলির adduserসাথে অস্তিত্বের পরীক্ষা করা যায় না if command -v adduser >/dev/null; then? অন্তর্নিহিত বিতরণগুলির জন্য এটিই একমাত্র বিষয়। এছাড়াও, ডেবিয়ান / উবুন্টু এবং ওপেনসুএস ছাড়াও অন্যান্য বিতরণ রয়েছে।
ডেভিড ফোরস্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.