Chạy chsh không đổi vỏ


19

Tôi muốn thay đổi vỏ của tôi từ bash sang zsh.

Tôi đã thử chạy như sau trong khi đăng nhập với tư cách người dùng zol:

$ chsh -s /bin/zsh
$ sudo chsh -s /bin/zsh zol
$ su -c 'chsh -s /bin/zsh zol'
# The above all results with:
$ password:
$ chsh: Shell not changed.

# zsh exists in /etc/shells.. 
chsh -l
/bin/sh
/bin/bash
/sbin/nologin
/bin/zsh

Điều gì có thể sai? Làm thế nào tôi có thể sửa chữa nó?


Bạn đã thử chạy 'chsh' mà không có bất kỳ đối số nào như zol chưa?
George M

Bạn đang sử dụng một cái gì đó như ldap / nis, vv?
Ulrich Dangel

Quan trọng hơn nhiều: Tại sao nó không cung cấp cho bạn thêm thông tin? Thông điệp đó có thể tốt cho một sysop dày dạn nhưng đối với hầu hết mọi người, nó hoàn toàn thô lỗ. Tôi phải đối mặt với cùng một vấn đề 5 năm và mọi người tự hỏi tại sao linux đã dành 20 năm qua không phải trên máy tính để bàn.
flurbius

Bạn mong đợi vỏ của bạn sẽ thay đổi ngay lập tức? Bạn thay đổi của bạn shell đăng nhập với chsh, mà có nghĩa là bạn sẽ phải đăng nhập lại.
Kusalananda

Câu trả lời:


17

Sửa đổi tài khoản người dùng sẽ không được lưu nếu bạn đã mở / etc / passwd (vim / etc / passwd) khi bạn cố gắng thay đổi thông tin.

Thay thế: thử với usermod (dưới dạng zol):

$ usermod -s /bin/zsh 

hoặc là

$ sudo usermod -s /bin/zsh zol

Nếu điều này cũng không hoạt động, chỉnh sửa /etc/passwdbằng tay.

sudo vipw
# set zol's shell to /bin/zsh
:wq

6
vui lòng sử dụng vipwthay vì vimhọ đặt các khóa tập tin thích hợp.
Ulrich Dangel

"Sửa đổi tài khoản người dùng sẽ không được lưu nếu bạn đã mở / etc / passwd" - nhưng tại sao?
Thanatos

Nó cũng không hoạt động. Khi tôi khởi động lại máy ảo Linux (centos7), giờ nó đã ổn!
WeizhongTu

1

Khi nào nên chạy "chsh -l" nếu bạn thấy:

/usr/bin/zsh
/bin/zsh

Sau đó sử dụng:

chsh -s /usr/bin/zsh

Cảnh báo: Các lệnh được chạy trên Fedora 25, Trong ubuntun tùy chọn "-l" từ được ra ngoài.


-llà một lựa chọn không hợp lệ đối với tôi. Tôi đang dùng Ubuntu 16.04
byxor 27/07/17

Xin lỗi, tôi không cung cấp thông tin về bản phân phối nơi các lệnh hoạt động. Trong trường hợp của tôi, tôi đã thử nghiệm trên Fedora 25. Tôi đã thử trên Ubuntu và tôi xác minh tùy chọn "-l" đã hết.
lourencoccc

Bất kể, chsh -slàm việc hoàn hảo. Cảm ơn.
byxor

Tùy chọn này hợp lệ trên Manjaro nhưng nó vẫn từ chối thay đổi vỏ.
flurbius

0

Nếu bạn thấy chsh: Shell not changed., nó có thể có nghĩa là vỏ đã được thay đổi.

Kiểm tra vỏ nào được liệt kê:

cat /etc/passwd | grep `cd; pwd`

Nếu đúng, hãy đăng xuất và đăng nhập lại để thay đổi có hiệu lực.


0

Chỉ cần chạy vào đây. Bất kể điều gì tôi đã đăng nhập và đăng xuất sẽ không thay đổi trình bao của tôi nhưng nó đã được liệt kê trong / etc / shell và trong / etc / passwd.

cuối cùng nó chợt nhận ra tôi: Có lẽ tôi đang đăng nhập bằng một phiên khác?

Tôi cũng vậy

# who

và nó đã xác thực tôi đã thực sự có các phiên mở khác từ các máy khác:

dom  pts/0        Nov 6 13:53 (10.1.6.121)
dom  pts/1        Nov 5 12:30 (10.1.6.165)
dom  pts/2        Nov 4 12:33 (10.1.6.197)

Sau đó tôi đã làm:

pkill -KILL -u dom

Tôi đã ngay lập tức đăng xuất và sau khi đăng nhập lại: Voila! Shell đã được thay đổi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.