Hướng dẫn lệnh chsh Linux cho người mới bắt đầu (5 ví dụ)

theanh

Administrator
Nhân viên
Lệnh chsh (thay đổi shell) trong Linux là một tiện ích cho phép người dùng thay đổi shell đăng nhập mặc định của họ. Shell đăng nhập là giao diện dòng lệnh mà người dùng tương tác khi đăng nhập vào hệ thống giống Unix. Các shell phổ biến bao gồm dash, bash, zsh, ksh và fish.

Trước khi tìm hiểu sâu hơn về lệnh chsh, điều cần thiết là phải hiểu shell đăng nhập là gì. Shell đăng nhập là quy trình đầu tiên chạy dưới ID người dùng của bạn khi bạn đăng nhập. Shell này chịu trách nhiệm khởi tạo môi trường của bạn và cung cấp giao diện để tương tác với hệ thống.

Các Shell Linux phổ biến​

  • Bash (Bourne Again Shell): Shell mặc định cho nhiều bản phân phối Linux, được biết đến với tính dễ sử dụng và các tính năng mạnh mẽ.
  • Zsh (Z Shell): Phiên bản mở rộng của bash với nhiều tính năng bổ sung như cải thiện hoàn thành tab và tùy chỉnh.
  • Ksh (Korn Shell): Shell cung cấp các tính năng lập trình có trong cả sh và csh.
  • Fish (Shell tương tác thân thiện): Được biết đến với các tính năng thân thiện với người dùng như tô sáng cú pháp và gợi ý tự động.
  • Dash: Shell Dash của Linux (dash) là một shell nhẹ, tuân thủ POSIX được thiết kế để tăng tốc độ và sử dụng tài nguyên tối thiểu, thường được sử dụng làm shell tập lệnh mặc định trong các hệ thống dựa trên Debian.

Lệnh chsh của Linux​

Như phần giới thiệu ở trên giải thích, lệnh chsh cho phép bạn thay đổi shell đăng nhập của mình. Sau đây là cú pháp của lệnh này:
Mã:
chsh [options] [LOGIN]
Và đây là nội dung trang hướng dẫn của công cụ này nói về lệnh này:
Mã:
The chsh command changes the user login shell. This determines the name
 of the user's initial login command. A normal user may only change the
 login shell for her own account; the superuser may change the login
 shell for any account.
Sau đây là một số ví dụ theo dạng Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh chsh hoạt động.

Câu hỏi 1. Sử dụng chsh như thế nào?​

Cách sử dụng cơ bản khá đơn giản - chỉ cần thực hiện lệnh 'chsh' mà không có đối số. Bạn sẽ được yêu cầu nhập mật khẩu đăng nhập và sau khi nhập thành công, bạn sẽ có tùy chọn thay đổi shell đăng nhập.
Mã:
chsh

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22216%22%3E%3C/svg%3E


Lưu ý rằng shell đăng nhập cho người dùng hiện tại là đã thay đổi theo mặc định.

Câu hỏi 2. Làm thế nào để thay đổi shell đăng nhập bằng chsh?​

Như bạn mong đợi, chỉ cần nhập giá trị mới (xem ảnh chụp màn hình trong ví dụ trước) và shell của bạn sẽ được thay đổi thành giá trị mới.

Ví dụ, tôi đã nhập /bin/sh làm giá trị mới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22201%22%3E%3C/svg%3E


Để xác minh thay đổi, bạn có thể chạy lại lệnh chsh. Giá trị hiển thị trong dấu ngoặc vuông là shell hiện tại. Vì vậy, trong trường hợp của tôi, shell hiện tại trở thành /bin/sh:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22185%22%3E%3C/svg%3E

Câu 3. Làm thế nào để thay đổi shell đăng nhập cho một số người dùng khác?​

Đối với điều này, chỉ cần chỉ định tên người dùng làm đầu vào cho lệnh chsh.
Mã:
chsh [username]
Ví dụ, để thay đổi shell đăng nhập của root, hãy sử dụng chsh theo cách sau:
Mã:
chsh root

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22164%22%3E%3C/svg%3E

Câu hỏi 4. Làm thế nào để chạy chsh ở chế độ không tương tác?​

Sử dụng tùy chọn dòng lệnh -s cho mục đích này, tùy chọn này yêu cầu phải truyền tên shell làm đầu vào cho lệnh.

Ví dụ:
Mã:
chsh -s /bin/sh
Theo cách này, shell đăng nhập cho người dùng hiện tại sẽ được thay đổi thành /bin/sh theo cách không tương tác.

Câu hỏi 5. Làm thế nào để xem danh sách các shell đăng nhập khả dụng trên hệ thống?​

Để nhanh chóng xem danh sách các shell khả dụng trong hệ thống của bạn, chỉ cần cat tệp /etc/shells.

Ví dụ, đây là đầu ra được tạo ra trên hệ thống của tôi:
Mã:
# /etc/shells: valid login shells
/bin/sh
/bin/bash
/bin/rbash
/bin/dash
Lưu ý:
Mã:
The only restriction placed on the login shell is that the command name
 must be listed in /etc/shells, unless the invoker is the superuser, and
 then any value may be added. An account with a restricted login shell
 may not change her login shell. For this reason, placing /bin/rsh in
 /etc/shells is discouraged since accidentally changing to a restricted
 shell would prevent the user from ever changing her login shell back to
 its original value.

Kết luận​

Như bạn thấy đấy, lệnh chsh là một công cụ quan trọng mà người dùng dòng lệnh nên biết. Ở đây, trong hướng dẫn này, chúng tôi đã thảo luận về phần lớn các tùy chọn dòng lệnh mà công cụ này cung cấp. Để tìm hiểu thêm về chsh, hãy truy cập trang hướng dẫn của nó.
 
Back
Bên trên