Cách sửa bash hoặc tự động chạy / bin / bash khi đăng nhập SSH


16

Khi đăng nhập như roottại máy chủ của tôi, mọi thứ đều hoạt động tốt, nhưng khi tôi đăng nhập vì myusernamebash không hoạt động chính xác.

Dòng bắt đầu bằng:

$ 

thay vì

myusername@myserver:~$

và tất cả các phím đặc biệt như phím mũi tên, phím tab, v.v. sẽ không hoạt động.

Khi tôi gõ bin/bashnó hoạt động trở lại, nhưng tôi muốn khắc phục sự cố hoặc tự động chạy bin/bashkhi đăng nhập. Làm thế nào tôi có thể sửa lỗi này?

ssh  bash 

Câu trả lời:


16

Bạn chỉ cần thay đổi vỏ của bạn. Là người dùng đó, hãy chạy:

$ chsh -s /bin/bash

Sau đó đăng xuất và đăng nhập lại.

Sau khi thực hiện việc này, lời nhắc không giống như bạn muốn, bạn sẽ cần bắt đầu điều chỉnh biến PS1 của môi trường.


Điều này thực sự nguy hiểm vì câu hỏi đang hỏi về rootngười dùng. Anh ta có thể không sử dụng Linux. Root nên ở lại với shell mặc định vì nhà cung cấp có thể sẽ dựa vào nó kshhoặc bất cứ thứ gì họ chọn. Thay vào đó, câu trả lời thực sự là "dù sao bạn cũng không nên đăng nhập bằng root".
bahamat

12

Bạn cần thay đổi vỏ của bạn. Chạy lệnh

chsh -s /bin/bash

sau đó đăng nhập lại.

Tuy nhiên, không phải tất cả người dùng đều có quyền thay đổi vỏ của chính họ. Nếu bạn sử dụng sudohãy nhớ thêm tên người dùng của bạn vào chshlệnh như

sudo chsh <username> -s /bin/bash

nếu không bạn sẽ thay đổi vỏ cho root vô tình.


Điểm công bằng. Mở rộng câu trả lời một chút.
Mikael Fremling

Tôi đã rất ngây thơ để thử: sudo chsh -s /bin/bashvì người dùng của tôi không được phép thay đổi vỏ. Câu trả lời của bạn đã giúp tôi giải quyết nó. Cảm ơn!
Edenshaw

5

Một lý do có thể là do vỏ mặc định của myusername không phải là bash.

Bạn có thể kiểm tra trình bao của người dùng hiện tại bằng:

  • echo ${SHELL}
  • echo $0

Để thay đổi vỏ người dùng vĩnh viễn man chsh , hãy xem :

chsh -s /bin/bash

2

Nếu mật khẩu người dùng sudo của bạn bị vô hiệu hóa, bạn có thể chỉnh sửa /etc/passwdtrực tiếp, tìm dòng nơi người dùng của bạn và thay đổi đường dẫn shell vào /bin/bash.

Dưới đây là giải thích về định dạng / etc / passwd .


0

Chỉ muốn thêm một điều nữa.

Nếu truy cập sudo là cần thiết để thay đổi bash cho người dùng đó, thì bạn cần đề cập đến tên người dùng của mình trong lệnh sudo vì không có tên người dùng, nó sẽ áp dụng cho người dùng root.

$ sudo chsh -s /bin/bash <user>
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.