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


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.