Ada ide tentang bagaimana saya bisa mengganti shell menjadi ikan?
$ 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
Pertanyaan terkait: pengguna tidak ada di / etc / passwd ketika mencoba mengubah shell default. Sepertinya ia menggunakan ldap.
$ 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
Jadi saya menginstal paket yang relevan 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
command-line
etc
fish
chsh
Abhishek Bhatia
sumber
sumber
/etc/shells
untukchsh
-seperti alat untuk menerimanya.Jawaban:
Berikut adalah petunjuk:
/usr/bin/chsh.ldap: "/usr/bin/fish" is an invalid shell
. Tampaknya Anda harus menambahkan/usr/bin/fish
untuk/etc/shells
.sumber
chsh.ldap -s /usr/bin/zsh myusername
beri akuSegmentation fault
.Tunggu, ini adalah pengguna LDAP, ada pengaturan di LDAP yang memungkinkan Anda untuk mengubah shell default untuk pengguna di dalamnya.
Anda dapat menginstal ldap-akun-manajer yang memberi Anda webfrontent untuk konfigurasi ldap.
Ini dapat dilakukan pada server mana pun yang Anda inginkan untuk menangani konfigurasi. Karena Anda perlu mengkonfigurasi server dalam file konfigurasi. Tetapi saya akan merekomendasikan Anda menginstalnya di server yang memiliki ldap benar-benar berjalan, supaya Anda dapat mengingatnya lebih mudah.
sumber
Mengutip ajmitch di sini ,
Cukup gunakan
chsh -s which fish
Dan pastikan untuk keluar dan masuk kembali atau nyalakan kembali komputer Anda.Ngomong-ngomong, ini bisa menjadi duplikat yang mungkin di sini: Bagaimana cara menetapkan ikan sebagai shell default?
sumber
$ chsh -s `which fish` Password: chsh: user 'jaan' does not exist in /etc/passwd