Làm thế nào để bạn thay đổi shell mặc định cho TẤT CẢ NGƯỜI SỬ DỤNG thành bash?


38

Tôi muốn mọi người dùng mới từ bây giờ sẽ có bash làm vỏ của họ theo mặc định.

Tôi biết rằng để thay đổi shell của riêng bạn thành bash, bạn sẽ sử dụng lệnh "chsh -s / bin / bash", nhưng làm cách nào để tự động đặt shell của tất cả người dùng trong tương lai thành bash theo mặc định?

Câu trả lời:


63

thêm người dùng

Các addusertập tin mặc định là /etc/adduser.conf. Shell mặc định được xác định bởi DSHELLbiến là /bin/bashtheo mặc định.

người dùng

Nhiều khả năng bạn không cần điều này vì useradd là một tiện ích cấp độ rất thấp và hầu như không được sử dụng trực tiếp.

Nếu bạn sử dụng useradd, hãy chỉnh sửa /etc/default/useraddtệp bộ xương (đừng quên tạo bản sao lưu).

Đặt SHELLbiến thành /bin/bashthay vì /bin/sh.

Bây giờ mỗi khi bạn sử dụng useraddđể thêm người dùng mới bashsẽ tự động trình bao mặc định của họ.

Đã có người dùng hiện tại

Nếu bạn muốn thay đổi trình bao của người dùng đã có, bạn phải chỉnh sửa /etc/passwdtệp (vui lòng đảm bảo sao lưu có bản sao lưu của nó).

Dưới đây là một mô tả về các cột

  1. tên đăng nhập
  2. mật khẩu được mã hóa tùy chọn
  3. ID người dùng số
  4. ID nhóm số
  5. tên người dùng hoặc trường nhận xét
  6. thư mục nhà người dùng
  7. tùy chọn trình thông dịch lệnh người dùng

Theo thứ tự được phân tách bằng dấu hai chấm (:) như thế này.

root:x:0:0:root:/root:/bin/bash

Để biết thêm thông tin về tập tin đó tham khảo trang người đàn ông man 5 passwd.


4
Tôi nghĩ rằng một cách an toàn hơn để thay đổi vỏ của người dùng khác sẽ giống như vậy sudo -u $USER chsh -s $SHELL.
Jack O'Connor

1
@ JackO'Connor bạn cũng nên đăng nó như một câu trả lời.
Octavian Damiean

Điều này dường như không hoạt động trong Ubuntu 16.04. Có ai biết sửa không.
Harshdeep

26

Như Octavian đã chỉ ra, cách thay đổi mặc định phụ thuộc vào cách bạn tạo người dùng. Tôi đã thử tạo một người dùng mới thông qua Cài đặt Gnome của tôi ngay bây giờ và dường như nó cũng tuân theo /etc/default/useradd, vì vậy đó có thể là lựa chọn tốt nhất của bạn. Đối với người dùng hiện tại, cách an toàn nhất để thay đổi vỏ đăng nhập của người khác là với usermod :

usermod -s /bin/bash $USERNAME

Nếu bạn không root, bạn sẽ cần phải sudo nó. Một cách khác là sudo vào người dùng bạn muốn sửa đổi và chỉ chạy chsh , như thế này:

sudo -u $USERNAME chsh -s /bin/bash

Tốt nhất là tránh chỉnh sửa /etc/passwdbằng tay, bởi vì một lỗi trong đó có thể phá vỡ mọi thứ.


1

Nếu bạn thực sự muốn tất cả người dùng trên máy chủ có bash (đó là câu hỏi thực sự được hỏi), bạn có thể chạy lệnh:

sudo dpkg-reconfigure dash

Và sau đó chọn KHÔNG gạch ngang. Như đã giải thích trong câu trả lời này,

Làm thế nào tôi có thể thực hiện / bin / sh trỏ đến / bin / bash?

Điều đó không chỉ đặt bash làm trình bao mặc định, mà còn bổ sung chính xác các trang sh và man.

Hi vọng điêu nay co ich.

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.