আমি কেন chsh কমান্ড দিয়ে শেল পরিবর্তন করতে পারছি না?


12

আমি একটি নতুন কমান্ড শিখেছি, কমপক্ষে আমি ভেবেছিলাম, কারণ এই আদেশ chsh:, বর্ণিত মতো আচরণ করে না।

এটি এর মতো কাজ করার জন্য বর্ণনা করা হয়েছিল:

  1. cat /etc/shells কোন শেলগুলি ইনস্টল করা আছে তা জানতে, যাতে আপনি তাদের মধ্যে চয়ন করতে পারেন।
  2. echo $SHELLআপনি কোন শেল ব্যবহার করছেন তা জানতে হবে do
  3. শেল এবং টাইপ এক চয়ন করুন chsh -s /path/to/shell
  4. পাসওয়ার্ড প্রবেশ করান এবং এর সাথে যাচাই করুন echo $SHELLযে আপনি একটি নতুন শেল।

আমি এটি করেছি এবং পাসওয়ার্ডটি প্রবেশ করার সময় আমি কোনও ত্রুটি বার্তা পাইনি, তবে আমি এখনও একই শেলের মধ্যে ছিলাম।

% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password: 
% echo $SHELL
/bin/bash

5
আপনাকে প্রথমে লগআউট এবং আবার লগইন করতে হবে।
রুই এফ রিবেইরো

7
টার্মিনাল পাঠ্যের চিত্র পোস্ট করবেন না। এটি অনুলিপি করে আপনার প্রশ্নের মূল শৃঙ্খলে আটকানো যেতে পারে এবং চিত্রগুলি পোস্ট করার দরকার নেই, যদি না আপনি কোনও গ্রাফিকাল গণ্ডা বা এর অনুরূপ কিছু দেখান।
সের্গেই কোলোডিয়াজনি


আমি আমার পোস্টটি সম্পাদনা করেছি, চিত্রটি মুছে ফেলেছি এবং পরিবর্তে পাঠ্যটি আটকেছি, তবে চিত্রটি রাতারাতি ফিরে এসেছিল।
শার্কান্ট

@ শারকান্ত দেখে মনে হচ্ছে পর্যালোচনা সারিতে কারওরই সম্পাদনা ছিল এবং এটি অনুমোদিত হয়ে গেছে, যা সত্যতার পরে আপনার পোস্টটি সম্পাদনা করেছে। আমি ভেবেছিলাম এসই সম্পাদনা সিস্টেম কোনও পুরানোটির সাথে একটি নতুন সম্পাদনা ওভাররাইট করবে না, তবে হেই, কে জানে?
ঝ্যান

উত্তর:


19

লগ আউট এবং আবার লগ ইন করুন।

chshকমান্ড আপডেট হবে /etc/passwdফাইল, কিন্তু এটা পরিবর্তন করে না বর্তমান শেল কিংবা মান $SHELLবর্তমান শেল মধ্যে পরিবর্তনশীল (এটা যে এরকম কোন উপায় আছে)। এই কারণে আপনাকে আবার লগ ইন করতে হবে; পরিবর্তনটি কার্যকর করার জন্য আপনাকে একটি নতুন লগইন সেশন শুরু করতে হবে।


লগইন শেল কী এবং আমি যদি লগইন শেল বা কোনও ধরণের লগইন শেল না থাকি তবে আমি কীভাবে তা বুঝতে পারি না। আমি কীভাবে একটি নতুন লগইন সেশন শুরু করব?
শারকান্ত

1
@ শারকান্ত এই বিষয়টি হ'ল আপনি যে তথ্যটিতে পরিবর্তন করেছেন /etc/passwdতা পরের বার লগ ইন না করা পর্যন্ত পড়া হয় না। পরিবর্তনটি কার্যকর করতে আপনাকে সম্পূর্ণ লগ আউট করতে হবে এবং আবার লগ ইন করতে হবে। আপনি যদি এটি করতে ব্যর্থ হন তবে মেশিনটি রিবুট করাও কাজ করবে।
কুসালানন্দ

1
আমি মনে করি আমি এবার আপনাকে বুঝতে পেরেছি: সুতরাং chsh -s / path / to / শেল কমান্ডটি আমি যে শেলটিতে রয়েছি তা তত্ক্ষণাত পরিবর্তন হয় না, তবে এটি / etc / passwd এর ভিতরে প্রবেশ করে যা শেলটি শুরু করলে কার্যকর হবে?
শার্কান্ট

@ শারকান্ত এইভাবে কাজ করে! আমি খুশি আমি অবশেষে আপনাকে ভুল ধারণাটি বুঝতে পেরেছি। আমি উত্তর আপডেট করব।
কুসালানন্দ

1

ইউজারমড ইউটিলিটি কমান্ড ব্যবহার করে আমার ক্ষেত্রে কাজ করেছে। উবুন্টুতে চলছে 18.04।

  1. প্রথমে বর্তমান মানটি পরীক্ষা করুন

grep nameofuser /etc/passwd

  1. ইহা পরিবর্তন করুন

sudo usermod --shell /bin/bash nameofuser

  1. এটি যাচাই করুন

grep nameofuser /etc/passwd

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