ডিফল্ট শেল পরিবর্তন করার চেষ্টা করার সময় ব্যবহারকারীর / etc / passwd তে উপস্থিত থাকে না


22

আমি আমার ডিফল্ট শেল টিসিএসএস থেকে ব্যাশে পরিবর্তন করতে চাই। তাই আমি চেষ্টা করেছি এবং এটিই ঘটেছিল:

>sudo chsh userid
Changing the login shell for userid
Enter the new value, or press ENTER for the default
        Login Shell [/xhbin/tcsh]: /bin/bash
chsh: user 'userid' does not exist in /etc/passwd

আসলে, আমি / ইত্যাদি / পাসডাব্লুডে নেই in কেন জানি না।

আমি কি করতে পারি?


11
আপনার সিস্টেমটি কি বিতরণযোগ্য প্রমাণীকরণ (উদাহরণস্বরূপ কার্বেরোস / উইনবাইন্ড) ব্যবহার করছে? সেক্ষেত্রে আপনার ব্যবহারকারীর বিবরণ স্থানীয় / ইত্যাদি / পাসডাব্লুডি ফাইলে প্রদর্শিত হবে না (তবে এটি ব্যবহার করে দৃশ্যমান হওয়া উচিত getent passwd <userid>)। আমি মনে করি যে chsh/etc/pam.d/
দৌড়াদৌড়ি

উত্তর:


15

আমার কম্পিউটার বিতরণযোগ্য প্রমাণীকরণ ব্যবহার করে এমন একটি নেটওয়ার্কের অংশ যাতে আমার ব্যবহারকারীর বিবরণ স্থানীয় / ইত্যাদি / পাসডাব্লুডি ফাইলটিতে প্রদর্শিত না হয় (তবে জেন্টেন্ট পাসডওএইড ইউজারিড ব্যবহার করে দৃশ্যমান হয়)। (ধন্যবাদ @ স্টিল্ড্রাইভার) আমার ক্ষেত্রে আমাকে একটি কোর মেশিনে chsh করতে হয়েছিল।


11
একটি "কোর মেশিন" কি আপনি ব্যাখ্যা করতে পারেন?
নার্ভ

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

4
@ rmp251 এটি আমার দৃশ্যপটটি হ'ল। কোর মেশিনে আমার অ্যাক্সেস নেই। আপনি অন্যথায় শেল পরিবর্তন করার কোনও উপায় খুঁজে পেয়েছেন?
গীক

@ গীক কীভাবে সমাধান করার উপায় খুঁজে পেয়েছেন?
মিলুশভ

13

এর জন্য একটি কার্যকারিতা রয়েছে gnome-terminal:

  1. যান সম্পাদনা -> প্রোফাইল পছন্দগুলি -> শিরোনাম এবং কমান্ড
  2. আমার শেলের পরিবর্তে একটি কাস্টম কমান্ড চালান পরীক্ষা করুন
  3. প্রদান করুন bashযেমন কাস্টম কমান্ড (অথবা fish, বা কিছু)

ধন্যবাদ! সেটিংসের মাধ্যমে আমার টার্মিনালটি (বা নতুন টার্মিনাল ট্যাব) খোলার সাথে সাথে চালানোর জন্য একটি কমান্ড সরবরাহ করা আমার পক্ষে কাজ করে।
কাকোডার 20

এটি কে-ডি-ই-তে কনসোল এবং ইয়াকুয়াকের জন্যও কাজ করে।
এক্সজিডিজিএসসি

6

আপনি যদি পিএএম বা অন্য কিছু দ্বারা এলডিএপি প্রমাণীকরণ ব্যবহার করছেন, আপনাকে আপনার উত্তরটি নিজের এলডিএপি সার্ভারে খুঁজে পেতে হবে। মাইক্রোসফ্ট AD এর জন্য এটি লক্ষ্য করা যাক, /etc/passwdআপনি লগ ইন করার সময় আপনার ডোমেন অ্যাকাউন্টটি না থাকলেও আপনি AD এর মাধ্যমে আপনার ব্যবহারকারীর সম্পত্তি দেখতে পাবেন getent passwd | grep user

যদি এটি শেষে আপনার শেলটি দেখায় তবে এটি /bin/cshআপনার এডি তে একটি বৈশিষ্ট্য রয়েছে। সুতরাং আপনার যদি AD তে প্রশাসকের অ্যাকাউন্ট থাকে তবে আপনি নিজেই এটি ঠিক করতে পারেন। নাহলে সক্রিয় ডিরেক্টরি ব্যবহারকারী এবং কম্পিউটার> ব্যবহারকারীর বৈশিষ্ট্য> ইউনিক্স বৈশিষ্ট্যগুলির ভিউ ট্যাবে অগ্রণী বৈশিষ্ট্যগুলি সক্ষম করতে কেবল আপনার AD প্রশাসককে বলুন । সেখানে আপনি লগইন শেলটি এতে পরিবর্তন করতে পারবেন ।/bin/bash

আপনি চালাতে ভুলবেন না তা নিশ্চিত হন:

sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash

উত্স: ডিফল্ট শেল পরিবর্তন করার চেষ্টা করার সময় ব্যবহারকারীর / etc / passwd তে উপস্থিত থাকে না


1
প্রশ্নটি ছিল একটি ব্যবহারকারীর শেল পরিবর্তন করার জন্য, অন্যদিকে pbis কনফিগারেশনটি সমস্ত ব্যবহারকারীর জন্য পরিবর্তিত হবে।
kubanczyk

5

আপনি যদি আপনার ব্যবহারকারীর জন্য শেল পরিবর্তন করতে চান তবে আপনাকে রুট হওয়ার দরকার নেই। লিখো:

chsh

sudoযুক্তি ছাড়াই এবং ছাড়াই।


আরও দেখুন man chsh:

Chsh কমান্ড ব্যবহারকারীর লগইন শেল পরিবর্তন করে। এটি নাম নির্ধারণ করে
ব্যবহারকারীর প্রাথমিক লগইন কমান্ড। একটি সাধারণ ব্যবহারকারী কেবলমাত্র এটি পরিবর্তন করতে পারে
তার নিজের অ্যাকাউন্টের জন্য লগইন শেল ; সুপারভাইজারটি লগইন পরিবর্তন করতে পারে
যে কোনও অ্যাকাউন্টের জন্য শেল।

আমি সুডো ব্যবহার করার কারণ হ'ল এটি ছাড়া কিছুই করেনি। > whoami userid > chsh You may not change the shell for 'userid'.
rmp251

এটি কাজ করার কারণটি হ'ল chsh কার্বেরোসের সাথে কাজ করে না
লেনার্ট রোলল্যান্ড

2

আপনি যদি নিজের ব্যবহারকারীর নাম ভুলে যান তবে আপনি whoamiমনে রাখতে কমান্ডটি ব্যবহার করতে পারেন ।

সুতরাং, দিয়ে চেষ্টা করুন:

sudo chsh $(whoami)

যদি প্রকৃতপক্ষে, /etc/passwdফাইলটিতে আপনার ব্যবহারকারীর নাম দিয়ে শুরু হওয়া কোনও লাইন উপস্থিত না থাকে (যা অনুমেয় বলে মনে হয়), আপনি এটির মতো একটি নতুন যুক্ত করতে পারেন:

ব্যবহারকারীর নাম : x: 1000: 1000: আপনার আসল নাম ,,,: / হোম / ব্যবহারকারীর নাম : / বিন / ব্যাশ

আরও দেখুন: বোঝার / ইত্যাদি / পাসডাব্লু ফাইল ফর্ম্যাট


1
আপনার ব্যবহারকারীর / ইত্যাদি / পাসডাব্লুডে বিদ্যমান না থাকার একটি কারণ হ'ল যদি সেই মেশিনে প্রমাণীকরণ না করা হয় (যেমন ldap)
ম্যাট্রিক্সম্যানএটিওয়াইসারসোয়ার্স

1

আপনি যদি কোনও ডোমেন ব্যবহারকারীর সাথে একটি রিমোট হোস্টে প্রবেশ করতে চাইছেন তবে আপনি @ chshমাসউদ উল্লিখিত হিসাবে শেলটি পরিবর্তন করতে পারবেন না । তবে এই ক্ষেত্রে এটির জন্য একটি সহজ উপায় - আপনি যখনই মেশিনে প্রবেশ করবেন তখন এটি করুন:

ssh my-host -t "zsh --login"

অথবা

ssh my-host -t "cd /data/repos; zsh --login"

আপনিও যদি অন্য কোনও কার্যকরী ডিয়ারে সরাসরি লগইন করতে চান।

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