Lệnh chsh (Change Shell) trong Linux được dùng để thay đổi shell đăng nhập mặc định của người dùng. Việc thay đổi shell giúp bạn tùy biến môi trường làm việc theo nhu cầu, tối ưu hiệu suất thao tác trong terminal. Trong bài viết này, mình sẽ hướng dẫn bạn cách sử dụng chsh Linux cùng các ví dụ thực tế để bạn có thể đổi shell mặc định.
Những điểm chính
- Khái niệm: Hiểu rõ lệnh
chsh
là gì và vai trò của nó trong việc thay đổi shell đăng nhập trong Linux. - Cú pháp và tùy chọn: Nắm được cú pháp chuẩn và các tùy chọn thường dùng để sử dụng lệnh
chsh
linh hoạt hơn. - Ví dụ thực tế: Thực hành với các tình huống cụ thể như kiểm tra shell hiện tại, đổi shell cho người dùng khác hoặc áp dụng trong môi trường không tương tác.
- Biết thêm Vietnix – Nhà cung cấp dịch vụ lưu trữ uy tín.
- Câu hỏi thường gặp: Giải đáp nhanh các thắc mắc giúp bạn hiểu và áp dụng lệnh
chsh
một cách chính xác và an toàn.
Lệnh chsh Linux là gì?
Trong hệ điều hành Linux, bash là một trong những shell đăng nhập phổ biến nhất. Tuy nhiên, bên cạnh bash còn có nhiều shell khác như zsh
, fish
, sh
… phù hợp với từng nhu cầu và thao tác dòng lệnh khác nhau. Lệnh chsh
là viết tắt của change shell, lệnh này cho phép người dùng thay đổi shell đăng nhập mặc định một cách dễ dàng và linh hoạt. Đây là công cụ dòng lệnh hữu ích khi bạn muốn cá nhân hóa môi trường làm việc hoặc thiết lập shell phù hợp hơn với workflow của mình.

Yêu cầu trước khi bắt đầu:
- Quyền sudo để thực hiện một số lệnh cần đặc quyền quản trị.
- Một hệ thống Linux (bài viết sử dụng Ubuntu 22.04 và CentOS 7 để minh họa).
- Quyền truy cập vào terminal.
Cú pháp lệnh chsh Linux
Lệnh chsh
giúp bạn thay đổi shell đăng nhập của người dùng trong hệ thống Linux. Cú pháp tổng quát của lệnh như sau:
chsh [tùy_chọn] [shell_mới] [tên_người_dùng]
Trong đó:
**[tùy_chọn]**
: Các tùy chọn để tùy biến hành vi của lệnh.**[shell_mới]**
: Đường dẫn đầy đủ tới shell muốn thay đổi, ví dụ/bin/bash
,/bin/zsh
,…**[tên_người_dùng]**
: Tên user mà bạn muốn thay đổi shell. Nếu không chỉ định, lệnh áp dụng cho người dùng hiện tại.
Các đối số đều không bắt buộc. Khi chạy lệnh chsh
mà không kèm theo đối số nào:
chsh
Terminal sẽ yêu cầu nhập mật khẩu của người dùng hiện tại, sau đó yêu cầu nhập đường dẫn của shell mới. Nếu bạn nhấn Enter mà không nhập gì, hệ thống sẽ giữ nguyên shell hiện tại. Cách sử dụng này đặc biệt hữu ích khi bạn muốn đổi shell cho chính mình mà không cần nhớ cú pháp đầy đủ của lệnh.
Tùy chọn lệnh chsh Linux
Lệnh chsh
hỗ trợ một số tùy chọn dòng lệnh cho phép bạn tùy biến cách sử dụng và thay đổi shell đăng nhập. Dưới đây là bảng tổng hợp các tùy chọn phổ biến:
Tùy chọn | Chức năng |
---|---|
-l | Xác định shell đăng nhập của người dùng. |
-u | Hiển thị danh sách các shell có sẵn trên hệ thống. |
-s | Thiết lập shell cụ thể làm shell đăng nhập cho người dùng. |
-R | Chroot vào thư mục chỉ định trước khi thực thi. |
-v | Hiển thị thông tin phiên bản của lệnh chsh và thoát. |
-h | Hiển thị hướng dẫn sử dụng lệnh chsh và thoát. |
Lưu ý
Không phải tất cả tùy chọn đều hoạt động trên mọi bản phân phối hoặc phiên bản Linux. Bạn hãy kiểm tra tài liệu hoặc thử trực tiếp trên hệ thống của bạn để xác minh.
Ví dụ lệnh chsh Linux
1. Hiển thị các shell có sẵn
Trước khi thay đổi shell bằng lệnh chsh
, bạn cần kiểm tra danh sách shell hiện có trong hệ thống. Dù một số tài liệu gợi ý dùng tùy chọn -l
, nhưng thực tế lệnh chsh -l
không hoạt động trên nhiều bản phân phối như Ubuntu. Thay vào đó, bạn nên dùng lệnh sau để liệt kê các shell hợp lệ:
cat /etc/shells
Lệnh này hiển thị đầy đủ các shell được cấu hình cho phép, giúp bạn lựa chọn đúng shell cần thay đổi.
2. Xác minh shell hiện tại
Bạn chạy lệnh chsh
không kèm tham số sẽ hiển thị shell hiện tại của người dùng:
chsh
Kết quả hiển thị shell hiện tại trong dấu ngoặc vuông, ví dụ:
Shell: [/bin/bash]
3. Thay đổi shell đăng nhập
Để thay đổi shell đăng nhập mặc định của người dùng hiện tại, bạn sử dụng tùy chọn -s
kèm đường dẫn shell mới:
chsh -s /usr/bin/tmux
Sau khi chạy lệnh, không có thông báo nào được in ra, nhưng bạn có thể xác minh lại bằng cách chạy chsh:
chsh
4. Đổi shell đăng nhập cho người dùng khác
Người dùng root hoặc có quyền sudo có thể thay đổi shell cho tài khoản khác. Cú pháp:
sudo chsh user1
Sau khi nhập, hệ thống sẽ yêu cầu bạn nhập shell mới, ví dụ:
Changing the login shell for user1
New shell [/bin/bash]: /bin/sh
Sau đó, bạn có thể chuyển sang tài khoản user1 để kiểm tra:
su user1
chsh
5. Đổi shell mà không cần tương tác với người dùng
Để thay đổi shell một cách không tương tác, dùng thêm -s
với đường dẫn shell và tên người dùng (nếu cần):
chsh -s /bin/sh
Đối với người dùng khác bạn dùng lệnh như bên dưới. Lệnh này thay đổi trực tiếp mà không yêu cầu xác nhận đầu vào:
sudo chsh -s /bin/bash user1
6. Áp dụng thay đổi shell trong môi trường khác
Tùy chọn -R
cho phép bạn thay đổi shell trong một môi trường chroot (thư mục gốc ảo). Cú pháp:
sudo chsh -R /mnt/chroot -s /bin/sh sara
Trong đó:
-R /mnt/chroot
: chỉ định thư mục chroot-s /bin/sh
: shell mớisara
: tên người dùng cần thay đổi
Lưu ý
Tùy chọn -R
không có sẵn trên mọi bản phân phối Linux.
7. Hiển thị cách sử dụng lệnh
Để xem hướng dẫn sử dụng nhanh của chsh
, bạn có thể dùng tùy chọn -u
:
chsh -u
Lệnh này chỉ hiển thị thông tin usage của chsh
mà không thực hiện thay đổi nào.
Vietnix – Nhà cung cấp dịch vụ lưu trữ uy tín, chất lượng
Vietnix là đơn vị cung cấp giải pháp thuê VPS đáng tin cậy với hiệu năng vượt trội, sử dụng 100% ổ cứng SSD và hạ tầng hiện đại. Dịch vụ VPS Linux tại Vietnix đảm bảo tốc độ xử lý nhanh, vận hành ổn định và cho phép người dùng toàn quyền quản trị hệ thống. Nhờ khả năng tùy chỉnh linh hoạt cùng cơ chế bảo mật cao, dịch vụ lưu trữ tại Vietnix là lựa chọn lý tưởng cho cá nhân và doanh nghiệp cần một môi trường lưu trữ mạnh mẽ, an toàn và tiết kiệm. Liên hệ ngay!
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
Câu hỏi thường gặp
Có cách nào để ghi log hoặc theo dõi ai đã thay đổi shell bằng chsh không?
Hiện chsh
không có tính năng ghi log riêng để theo dõi ai đã thay đổi shell. Tuy nhiên, bạn có thể:
– Kích hoạt auditd trên Linux để giám sát lệnh chsh
hoặc thay đổi file /etc/passwd
(nơi lưu shell đăng nhập). Auditd sẽ ghi lại thông tin user, thời gian và thao tác thay đổi.
– Kiểm tra nhật ký hệ thống như /var/log/auth.log
hoặc /var/log/secure
(tùy distro) để xem các hành động liên quan đến thay đổi quyền hoặc chạy lệnh với sudo.
– Thiết lập chính sách bảo mật và quyền hạn nghiêm ngặt, hạn chế chỉ một số user được phép dùng chsh
.
chsh có hoạt động trong môi trường Docker container không và cần lưu ý gì?
chsh
có thể hoạt động trong Docker container, nhưng thường không cần thiết vì container không dùng môi trường login đầy đủ. Nếu cần đổi shell, bạn nên sửa trực tiếp /etc/passwd
hoặc cấu hình trong Dockerfile.
Lời kết
Hy vọng qua các ví dụ thực tế trong bài, bạn đã nắm được cách sử dụng chsh Linux từ cơ bản đến nâng cao, bao gồm thay đổi shell cho chính mình hoặc cho người khác, cũng như áp dụng trong các môi trường đặc biệt. Việc hiểu rõ và thành thạo lệnh này sẽ giúp bạn tối ưu hóa trải nghiệm và quản lý hiệu quả hơn trên Linux. Nếu cần một dịch vụ VPS ổn định để thử nghiệm hoặc triển khai, Vietnix luôn sẵn sàng đồng hành cùng bạn với giải pháp thuê VPS chất lượng và uy tín.