আমার সার্ভারে ssh'ing করার পরে আমি কীভাবে বাশ শুরু করব?


29

আমার একটি হোস্টেড ডেবিয়ান সার্ভার রয়েছে। আমি যখন ssh এর মাধ্যমে লগ ইন করি, তখন আমি sh পরিবেশের সাথে অভ্যর্থনা জানাই। বাশ পরিবেশে শুরু করার ফলে আমি কীভাবে এটি পরিবর্তন করব?

linux  bash  debian  sh 

1
আসলেই প্রোগ্রামিং প্রশ্ন নয়। ভবিষ্যতে, আপনি সম্ভবত শ্রেষ্ঠ এই মত প্রশ্ন জিজ্ঞাসা চাই ইউনিক্স / লিনাক্স ।
— টাইলার

উত্তর:


33

নিয়মিত ব্যবহারকারী হিসাবে আপনি chshকমান্ডটি ব্যবহার করে আপনার ডিফল্ট লগইন শেল পরিবর্তন করতে পারেন । এখানে একটি উদাহরণ:

chsh -s /bin/bash

আর একটি বিকল্প হ'ল ব্যবহারকারীকে মূল হিসাবে ব্যবহার করুন:

usermod -s /bin/bash username

1
ইউজারমড একটি কবজির মতো কাজ করেছিল। আমি যখন কোনও নতুন ব্যবহারকারী যুক্ত করব তখন এটি এটিকে ডিফল্ট হিসাবে সেট করার কোনও উপায় আছে, বা প্রতিবারই আমাকে কমান্ডটি চালাতে হবে?

আপনি যদি ব্যবহার করেন তবে adduserএটি ডিফল্টরূপে ব্যাশে সেট করা উচিত। ডিফল্টটি কনফিগার করা আছে /etc/adduser.conf। অন্যথায় শেলটি স্পষ্টভাবে উল্লেখ করুন useradd।
— জর্দানম

5

/etc/passwdসর্বশেষ এন্ট্রিটি যেখানে ডিফল্ট শেল সেখানে আপনি সম্পাদনা করেন। এটি তৈরি করুন /bin/bash।

বিকল্পভাবে, আপনি /bin/shব্যাশ না হওয়ার কারণে সিস্টেমের ডিফল্ট পরিবর্তন করতে পারেন ।


1
হ্যাঁ, ড্রাইভ বাই ডাউনভোটের কী অবস্থা? যেমন উবুন্টু /bin/shহ'ল ডিফল্ট করে /bin/dash। এবং এটির জন্য অন্যান্য দুটি উত্তরগুলির জন্য একইরকম এবং বিভিন্ন উপায়ে একই প্রান্তে পৌঁছানো। যাই হোক.
— ডার্ক এডেলবুয়েটেল

4
এর ম্যানুয়াল সম্পাদনাগুলি /etc/passwdঅত্যন্ত নিরুৎসাহিত। একটি সম্পাদনা ভুল সমস্ত ব্যবহারকারীর জন্য লগইনগুলি ভাঙ্গতে পারে, পুনরুদ্ধার মিডিয়া বা মেরামত করতে একক ব্যবহারকারী মোডে বুট প্রয়োজন boot usermodপরিবর্তনের মতো সরঞ্জাম রয়েছে /etc/passwd।
— জর্দানম

1
ছাইপাঁশ. এখানে '94 সাল থেকে লিনাক্স চলছে। কখনই বাজে না /etc/passwd।
— ডার্ক এডেলবুয়েটেল

2
আপনি খুব যত্নশীল হয়েছে শুনে শুনে ভাল। সবার নেই। আপনার আপডেটে আর একটি নোট, এটি চালু করার সাথে একইভাবে চালু /bin/bashকরা , যার অনাকাঙ্ক্ষিত ফলাফল হতে পারে। /bin/sh--posix
— জর্দানম

দেখুন, 1995 সাল থেকে আমিও একটি ডেবিয়ান বিকাশকারী / রক্ষণাবেক্ষণকারী। আমরা ডিফল্ট হিসাবে ব্যাশ করতাম, বিভিন্ন কারণে আমরা সহজ শেলগুলিতে স্যুইচ করেছি। আমি /bin/bashসমস্ত বছর সমস্ত মেশিনে আমার শেল হিসাবে ব্যবহার করে আসছি। আপনার আরও দৃ concrete় যুক্তি দরকার।
— ডার্ক এডেলবুয়েটেল

2

আপনাকে আপনার ব্যবহারকারীর প্রোফাইল সম্পাদনা করতে /etc/passwdহবে, আপনি ফাইলটি সম্পাদনা করে সরাসরি এটি করতে পারেন, বা usermodএটি করার জন্য আপনি আদেশটি ব্যবহার করতে পারেন । আপনি যে সিনট্যাক্সটি সন্ধান করছেন তা দেখতে এরকম কিছু দেখাচ্ছে:

usermod -s /bin/bash joeuser

1

/bin/shসাম্প্রতিক উবুন্টু রিলিজগুলিতে ডিফল্ট সিস্টেম শেলটি কনফিগার করা আছে /bin/dash। কেবল নিম্নলিখিত কমান্ডটি চালিয়ে:

sudo dpkg-reconfigure dash

আপনি এটির পুরানো ডিফল্টটিতে ফিরে যেতে পারেন /bin/bash।

এটির সাহায্যে আপনি bashকোনও ব্যবহারকারীর সেটিংস (না chshবা usermod) পরিবর্তন না করে ইন্টারেক্টিভ শেল হিসাবে আকাঙ্ক্ষিত প্রভাব অর্জন করতে পারেন এবং এটি বর্তমানে শেল সেট থাকা সমস্ত ব্যবহারকারীদের জন্য কাজ করবে /bin/sh।

এর একমাত্র ছোট ছোট দিক রয়েছে: উবুন্টু বুটের সময়টি সামান্য বাড়তে পারে, কারণ dashলোড করতে কম মেমরি লাগে এবং চালাতে কিছুটা দ্রুত লাগে (অবাক হওয়ার কিছু নেই - এটি বৈশিষ্ট্যে এতটাই সীমাবদ্ধ)। তবে আমি মনে করি এটি বিশেষত হোস্টিং পরিবেশের জন্য এই প্রভাবটি পরিমাপ করা বরং আরও কঠিন হবে।

এছাড়াও, শেল স্ক্রিপ্টগুলি সঠিকভাবে কাজ করতে ব্যর্থ হয় তা দেখে কখনও কখনও বিরক্ত হয় কারণ তারা কিছু bashউন্নত বৈশিষ্ট্য ব্যবহার করে যা দ্বারা সমর্থিত নয় dash। এই রেসিপিটি ব্যবহার করে তা নিশ্চিত হবে না।

আরও তথ্যের জন্য, এই সমস্যাটি সম্পর্কে উবুন্টু উইকি দেখুন ।


আপনার ব্যবহারের কেসগুলি পৃথক করে রাখা উচিত: /bin/shপসিক্স সামঞ্জস্যপূর্ণ শেল স্ক্রিপ্টগুলির জন্য দোভাষী হিসাবে ব্যবহৃত হয় - এটি অগত্যা সেরা ইন্টারেক্টিভ শেল নয়; আপনি যদি bashনিজের সিস্টেম শেল হতে চান তবে আপনার পছন্দমত লগইন শেলটি chshবা সঠিক adduserকল ব্যবহার করে সেট করা উচিত । dpkg-reconfigureইউজারএ zsh চায় এবং ইউজারবি বাশ চায় এবং উভয়ই / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / ডি / শেল ব্যবহার করতে চায় bin
— umläute

যদি ইউজারএ স্পষ্টরূপে কনফিগার করা থাকে zshএবং তাদের কাছে ইউজারবি রয়েছে bash। ইউজারসি যদি এটিতে কনফিগার করা থাকে shতবে তার কাছে bashএটি বর্তমানে নতুন ব্যবহারকারীদের জন্য উবুন্টু ডিফল্ট
— এমভিপি

অবশ্যই, তবে আপনার সমাধানটিতে / bin / sh হিসাবে সেট করতে এবং তারপরে / বিন / এস হিসাবে dpkg-reconfigure zshসেট করার মতো কিছু প্রস্তাবিত যা কোনও ধরনের অচলাবস্থা; আমি মূলত বলছি যে লগইন শেলটিকে শেলটিতে সেট করা পছন্দ করা হয় যে আপনি / বিন / এসকে একটি ভাল লগইন শেল তৈরি করতে হুপের মধ্য দিয়ে না গিয়ে ব্যবহার করতে চান to zshdpkg-reconfigure dashdash
— umläute

আমি কেবল বলেছিলাম যে পঙ্গু dpkg-reconfigure dashনা হয়ে shপয়েন্ট করতে পারে । অন্য সমস্ত শেলগুলি এখনও অক্ষত থাকবে। bashdash
— এমভিপি

1

যে ক্ষেত্রে আপনি কোনও ভাগ করা অ্যাকাউন্ট (যে কোনও কারণে) ব্যবহার করার চেষ্টা করছেন এবং ডিফল্ট শেলটি পরিবর্তন করতে পারবেন না, তারপরে আপনি চালাতে পারেন

ssh -t <user@hostname> bash -l

আপনার যদি অন্য কোনও শেল থেকে আপনার পরিবেশ রক্ষা করা প্রয়োজন, তবে আপনি প্রথমে সেই শেলটি চালাতে পারেন; উদাহরণ স্বরূপ

ssh -t <user@hostname> ksh -c bash -l

এটি বেশ ভাল কাজ করে, তবে -lবিকল্পটি কেন ?
— এনবিখোপ

@nbkhope এটি নিশ্চিত করবে যে আপনার জন্য .bashrc চালিত হয়েছে।
— ইউকেমনকি

0

না হয় chshবা usermodআমার পক্ষে কাজ করছিল না, তবে আমি পেয়েছি যে আপনি এটি পিটিটিআইয়ের মাধ্যমে করতে পারেন।

যান Connection > SSHএবং সেট Remote commandকরার bash।

মনে রাখবেন যে আপনি exitআপনার ডিফল্ট শেলটি সক্ষম করতে পারবেন না , এটি কেবল সংযোগটি বন্ধ করবে।

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