Để bảo vệ kernel Linux khỏi các truy cập trái phép, hệ điều hành cung cấp khả năng tạo nhiều người dùng với các quyền hạn khác nhau. Bạn có thể dễ dàng chuyển đổi giữa các người dùng trong Linux bằng các lệnh. Bài viết này sẽ khám phá các phương pháp khác nhau để chuyển đổi người dùng trực tiếp từ terminal Linux, bất kể bạn muốn thực hiện các tác vụ quản trị hay đơn giản chỉ cần thực thi các lệnh với tư cách siêu người dùng.
Contents
Ba Loại Người Dùng Trong Linux
Trước khi bắt đầu chuyển đổi người dùng, hãy cùng tìm hiểu các loại người dùng khác nhau trong Linux:
- Người dùng hệ thống (System User) hay Người dùng không đăng nhập (Non-login user): Loại người dùng này không có quyền truy cập đăng nhập hoặc truy cập shell. Chúng thường được sử dụng để chạy các dịch vụ hoặc ứng dụng cụ thể. Để tìm hiểu thêm về người dùng không đăng nhập, bạn có thể tham khảo bài viết về cách tạo người dùng không đăng nhập trong Linux.
- Người dùng thông thường (Regular User): Các tài khoản người dùng này có quyền truy cập hạn chế vào hệ thống tệp theo quyền truy cập tệp của họ. Tuy nhiên, họ có thể sử dụng các lệnh
su
hoặcsudo
để có được quyền quản trị. - Người dùng root (Super User/ Administrator): Loại tài khoản người dùng này có quyền truy cập hoàn toàn, không hạn chế vào toàn bộ hệ thống tệp với mức độ bảo mật cao nhất.
Cách Chuyển Đổi Người Dùng Trong Linux Bằng Lệnh su
Lệnh su
, viết tắt của “switch user” (chuyển đổi người dùng), là một công cụ mạnh mẽ để chuyển từ tài khoản người dùng này sang tài khoản người dùng khác. Cú pháp để chuyển đổi người dùng bằng lệnh su
trong Terminal Linux là:
su <tên_người_dùng>
Trong cú pháp trên, thay thế <tên_người_dùng>
bằng tên của tài khoản người dùng mà bạn muốn chuyển sang.
Các tùy chọn thường dùng với lệnh su
:
Tùy chọn | Mô tả |
---|---|
-c |
Để chuyển một lệnh đến shell mới của người dùng đã chuyển đổi. |
-s |
Để chỉ định một shell khác thay vì /bin/sh mặc định. |
-P |
Khi được sử dụng, sẽ tạo một pseudo-terminal mới cho phiên, không được chia sẻ với phiên ban đầu để bảo mật tốt hơn. |
-l |
Khởi động shell như một shell đăng nhập với một môi trường tương tự như một đăng nhập thực. |
-g |
Được sử dụng để chỉ định nhóm chính. |
1. Chuyển Sang Người Dùng Thông Thường
Để chuyển sang người dùng thông thường bằng lệnh su
trong Linux, hãy sử dụng cú pháp sau:
su -l <tên_người_dùng>
Ví dụ: để chuyển sang người dùng ‘test1’, hãy sử dụng lệnh sau:
su -l test1
Chuyển sang người dùng thông thường bằng lệnh su
Bây giờ, hãy nhập mật khẩu của người dùng bạn muốn chuyển sang và nhấn enter. Bạn có thể nhận thấy rằng không có tên người dùng nào trong dấu nhắc shell hoặc bạn thậm chí không thể sử dụng các phím mũi tên để điều hướng hoặc sử dụng tự động hoàn thành cú pháp bằng phím tab. Điều này có nghĩa là shell không ổn định. Để tạo một shell ổn định, hãy sử dụng lệnh này:
/bin/bash/ -i
Dấu nhắc shell của bạn bây giờ sẽ hiển thị tên người dùng mới, bạn cũng có thể điều hướng bằng các phím mũi tên và sử dụng tự động hoàn thành bằng phím tab.
Thêm một shell ổn định cho người dùng đã chuyển đổi
2. Chuyển Sang Người Dùng Root
Đôi khi, bạn có thể cần sử dụng tài khoản người dùng root cho một số tác vụ quản trị. Để chuyển sang người dùng root hoặc Super User trong Linux, hãy sử dụng lệnh su
như sau:
su -
Bạn sẽ được nhắc nhập mật khẩu cho người dùng root. Nhập mật khẩu root và nhấn enter. Dấu nhắc shell của bạn bây giờ sẽ hiển thị tên người dùng root. Bây giờ bạn có thể thực thi tất cả các lệnh với tư cách là người dùng root.
Chuyển sang người dùng root trong Linux bằng lệnh su
1. Làm cách nào để xem danh sách người dùng trong Linux?
Tất cả thông tin người dùng được lưu trữ trong tệp /etc/passwd
. Sử dụng lệnh cat
để xem nội dung tệp như sau: cat /etc/passwd
2. Sự khác biệt giữa lệnh su
và sudo
là gì?
Lệnh su
(switch user) chuyển đổi hoàn toàn sang một tài khoản người dùng khác, yêu cầu mật khẩu của tài khoản đó (trừ khi bạn là root). Lệnh sudo
(Super User Do) cho phép bạn thực thi một lệnh duy nhất với quyền của người dùng khác (thường là root), yêu cầu mật khẩu của bạn.
3. Tôi có thể chuyển sang người dùng khác mà không cần biết mật khẩu của họ không?
Không, bạn cần biết mật khẩu của người dùng bạn muốn chuyển sang. Nếu bạn đã đăng nhập với tư cách là người dùng root, thì bạn có thể chuyển đổi mà không cần biết mật khẩu của họ.
4. Làm thế nào để quay lại người dùng ban đầu sau khi sử dụng su
?
Bạn có thể gõ exit
và nhấn Enter để quay lại người dùng trước đó. Nếu bạn đã chuyển đổi nhiều lần, bạn cần gõ exit
bấy nhiêu lần.
5. Sử dụng sudo
có an toàn hơn su
không?
Trong một số trường hợp, sudo
được coi là an toàn hơn vì nó cho phép bạn thực hiện các tác vụ quản trị cụ thể mà không cần đăng nhập hoàn toàn với tư cách root. Điều này giảm thiểu rủi ro nếu bạn vô tình thực hiện một hành động gây hại cho hệ thống.
6. Làm thế nào để biết tôi đang ở tài khoản người dùng nào?
Bạn có thể sử dụng lệnh whoami
trong terminal để biết bạn đang đăng nhập với tư cách người dùng nào.
7. Tại sao tôi nên sử dụng su -
thay vì su
?
su -
(hoặc su -l
) khởi động một shell đăng nhập cho người dùng mới, tải các biến môi trường và cấu hình của họ. Điều này đảm bảo môi trường làm việc tương tự như khi người dùng đăng nhập trực tiếp. su
đơn thuần chỉ chuyển đổi người dùng mà không tải môi trường của họ.
Cách Chuyển Đổi Người Dùng Trong Linux Bằng Lệnh sudo
Lệnh sudo
là viết tắt của “Super User Do” (thực hiện với quyền siêu người dùng). Lệnh này thường được sử dụng để thực thi các lệnh khác nhau với tư cách là người dùng root hoặc siêu người dùng. Nhưng, với một mẹo nhỏ, bạn có thể sử dụng lệnh sudo
để chuyển đổi người dùng trong Linux. Trước đó, hãy xem cú pháp cho lệnh sudo
:
sudo <tùy_chọn> <lệnh>
1. Chuyển Sang Người Dùng Thông Thường
Để chuyển sang người dùng Linux thông thường bằng lệnh sudo
trong Linux, hãy sử dụng cú pháp sau:
sudo -u <tên_người_dùng_muốn_chuyển_sang> /bin/bash
Trong cú pháp trên:
-u
được sử dụng để chỉ định tên người dùng bạn muốn chuyển sang/bin/bash
chỉ định tạo một shell bash cho người dùng này
Ví dụ: nếu bạn muốn chuyển sang người dùng test1, hãy sử dụng lệnh sudo sau:
sudo -u test1 /bin/bash
Sau khi bạn thực thi lệnh trên, bạn sẽ được nhắc nhập mật khẩu của người dùng root. Nhập mật khẩu root và nhấn enter. Dấu nhắc bây giờ sẽ hiển thị tên người dùng đã chuyển đổi.
Chuyển sang người dùng Linux thông thường bằng lệnh sudo
2. Chuyển Sang Người Dùng Root
Để chuyển sang người dùng root bằng lệnh sudo
:
sudo -u root /bin/bash
Tiếp theo, nhập mật khẩu root và nhấn enter. Dấu nhắc shell của bạn bây giờ sẽ thay đổi thành tên người dùng root.
Chuyển sang người dùng root bằng sudo