ব্যবহারকারী / etc / পাসডাব্লুডে না থাকলে ডিফল্ট শেল পরিবর্তন করুন


8

আমি কীভাবে শেলটিকে মাছের মধ্যে পরিবর্তন করতে পারি সে সম্পর্কে কোনও ধারণা?

$ sudo usermod -s /usr/bin/fish jaan
usermod: user 'jaan' does not exist in /etc/passwd
$ getent passwd $USER
jaan:x:15466:94:Jaan Altosaar:/home/jaan:/bin/zsh

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

$ cat /etc/nsswitch.conf
passwd:         compat ldap
group:          compat ldap
shadow:         compat ldap

# Having the NOTFOUND=return bit was breaking dns resolution on web1 and web2. But we probably
# don't want any of the mdns stuff so let's get rid of it all.
#hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
hosts:          files dns

networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       ldap
automount:      ldap

সুতরাং আমি ldap প্রাসঙ্গিক প্যাকেজ ইনস্টল।

$ chsh.ldap
LDAP password for jaan:
Enter the new value, or press ENTER for the default
  Login Shell [/bin/zsh]: /usr/bin/fish
Traceback (most recent call last):
  File "/usr/bin/chsh.ldap", line 69, in <module>
    constants.NSLCD_USERMOD_SHELL: shell,
  File "/usr/share/nslcd-utils/nslcd.py", line 128, in usermod
    assert con.get_response() == constants.NSLCD_RESULT_BEGIN
  File "/usr/share/nslcd-utils/nslcd.py", line 103, in get_response
    return self.read_int32()
  File "/usr/share/nslcd-utils/nslcd.py", line 71, in read_int32
    return _int32.unpack(self.read(_int32.size))[0]
struct.error: unpack requires a string argument of length 4
$ which fish
/usr/bin/fish
$ chsh.ldap
LDAP password for jaan:
Enter the new value, or press ENTER for the default
  Login Shell [/bin/zsh]: "/usr/bin/fish"
/usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell
$ /usr/bin/fish
(standard_in) 1: syntax error
Welcome to fish, the friendly interactive shell

এটা কি সম্ভব?
জর্জ উদোসেন

@ জর্জি দয়া করে সম্পাদনা পরীক্ষা করুন।
অভিষেক ভাটিয়া


@ জর্জি এটি কাজ করে না।
অভিষেক ভাটিয়া

শেল পথটি এটি গ্রহণ করার /etc/shellsজন্য chshপছন্দসই সরঞ্জামগুলিতে হওয়া উচিত ।
মুরু

উত্তর:


1

এখানে একটি ইঙ্গিতটি হল: /usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell। মনে হচ্ছে আপনার যোগ /usr/bin/fishকরা উচিত /etc/shells


হাহাহা সুন্দর, chsh.ldap -s /usr/bin/zsh myusernameআমাকে ক Segmentation fault
jchook

তারপরে এটি এখানে প্রতিবেদন করা উচিত: লঞ্চপ্যাড.এন.উবন্টু
সোর্স

1

এটি ধরুন, এটি একটি এলডিএপি ব্যবহারকারী, এলডিএপিতে একটি সেটিং রয়েছে যা আপনাকে তাদের ব্যবহারকারীর জন্য ডিফল্ট শেল পরিবর্তন করতে দেয়।

আপনি ldap- একাউন্ট-ম্যানেজার ইনস্টল করতে পারেন যা আপনাকে ldap কনফিগারেশনের জন্য ওয়েবফ্রন্ট দেয়।

apt install ldap-account-manager

এখানে চিত্র বর্ণনা লিখুন

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


-1

এখানে আজমিটকে উদ্ধৃত করতে ,

Chsh -s চালিয়ে আপনি মাছটিকে আপনার ডিফল্ট শেল হিসাবে সেট করতে পারেন which fish তারপরে লগ আউট এবং পিছনে প্রবেশ করুন it

শুধু ব্যবহার করুন chsh -s which fishএবং লগ আউট এবং লগ ইন করতে বা আপনার কম্পিউটার পুনরায় চালু করার বিষয়টি নিশ্চিত করুন।

উপায় দ্বারা এটি এখানে একটি সম্ভাব্য নকল হতে পারে: আমি কীভাবে মাছকে ডিফল্ট শেল হিসাবে সেট করব?


Hmm..chsh কেবল তখনই কাজ করে যদি / etc / passwd এর ব্যবহারকারী থাকে। $ chsh -s `which fish` Password: chsh: user 'jaan' does not exist in /etc/passwd
অভিষেক ভাটিয়া ২

আহ ... হ্যাঁ ... আমি এটা সেই অংশে দেখতে পাইনি ...
ম্যাক্স

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