NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
21/08/2024
Lượt xem

Cách sử dụng lệnh su trong Linux qua 6 ví dụ hữu ích

21/08/2024
11 phút đọc
Lượt xem

Đánh giá

Hiện tại, Linux hỗ trợ tính năng chuyển đổi giữa các tài khoản người dùng, giúp ngăn ngừa xung đột giữa các phiên làm việc. Và lệnh su là công cụ chính để thực hiện lệnh chuyển đổi này. Bài viết này mình sẽ giới thiệu chi tiết đến bạn cách sử dụng lệnh su trong Linux thông qua 6 ví dụ cụ thể.

Lệnh su trong Linux là gì?

Lệnh su (switch user) được sử dụng trong việc quản lý và bảo mật hệ thống nhiều người dùng. Dòng lệnh cho phép người dùng chuyển đổi giữa các tài khoản người dùng khác trên cùng một phiên làm việc.

Lệnh su trong Linux
Lệnh su trong Linux

Cú pháp:

su [options] [-] [user [argument...]]

Lưu ý:

  • Argument (tham số): không bắt buộc và bạn có thể sử dụng nhiều tham số cùng một lúc.

Bên cạnh đó, bạn có thể tham khảo một số bài viết về các câu lệnh trong Linux dưới đây:

8 tùy chọn sử dụng lệnh su

Bạn có thể tự kiểm tra các tùy chọn của lệnh su bằng cách nhập lệnh sau:

man su
Tuỳ chọnMô tả
-c/--command=commandThực thi một lệnh cụ thể với quyền của người dùng khác
-f/--fastTruyền tham số -f tới shell, có thể ảnh hưởng đến hành vi của shell tùy thuộc vào loại shell
-g/--group=groupChỉ định nhóm chính (chỉ dành cho người dùng root)
-G/--supp-group=groupChỉ định nhóm bổ sung (chỉ dành cho người dùng root). Nhóm bổ sung đầu tiên cũng sẽ được sử dụng làm nhóm chính nếu không chỉ định tùy chọn -group
-h/--helpHiển thị thông tin trợ giúp cho lệnh su
-l/--loginKhởi động một phiên đăng nhập mới với môi trường tương tự như đăng nhập thực tế
-p/--preserve-environmentGiữ nguyên môi trường shell hiện tại
-s/--shellChỉ định một môi trường shell khác để chạy

Lưu ý: Các tùy chọn trong Linux phân biệt chữ hoa và thường, vì vậy bạn hãy nhập chính xác.

Ví dụ 1: Chuyển sang tài khoản Root

Lệnh su trong Linux được sử dụng để chuyển đổi quyền truy cập người dùng. Nếu không chỉ định được tên người dùng cụ thể thì hệ thống sẽ chuyển sang người dùng có quyền truy cập root (toàn quyền).

Các bước thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sudo dưới đây vào command prompt và nhấn phím Enter:

sudo su

Kết quả: Nếu mật khẩu đúng, bạn sẽ được chuyển sang tài khoản Root.

Chuyển sang tài khoản Root
Chuyển sang tài khoản Root

Ví dụ 2: Chuyển đổi sang người dùng cụ thể bằng lệnh su

Ví dụ, bạn cần chuyển từ người dùng có quyền truy cập root sang người dùng có tên susmit. Lúc này, hệ thống sẽ không yêu cầu bạn nhập mật khẩu vì hiện tại bạn đang có quyền truy cập cao nhất.

Bạn thực hiện các bước thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

su susmit

Kết quả: Bạn sẽ thấy tên người dùng ở đầu dòng lệnh thay đổi thành susmit. Lúc này, bạn đang làm việc dưới quyền truy cập của tài khoản này.

Chuyển đổi sang người dùng cụ thể bằng lệnh su
Chuyển đổi sang người dùng cụ thể bằng lệnh su

Ví dụ 3: Chuyển đến thư mục home của người dùng cụ thể

Trong ví dụ này, bạn sẽ cần sử dụng lệnh su với tùy chọn -l để chuyển từ người dùng có quyền truy cập root sang người dùng có tên susmit, với mục đích truy cập môi trường shell hiện tại của người dùng này.

Các bước thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Nhâp cú pháp lệnh sau vào command prompt và nhấn phím Enter:

su -l susmit

Kết quả: Hình ảnh minh họa cho thấy sau khi thực hiện lệnh, bạn đã chuyển từ người dùng có quyền truy cập root sang người dùng susmit và đang sử dụng môi trường làm việc của họ.

Chuyển đến thư mục home của người dùng cụ thể
Chuyển đến thư mục home của người dùng cụ thể

Ví dụ 4: Thực hiện lệnh su dưới quyền người dùng khác

Giả sử, bạn không phải là người dùng có quyền truy cập root, bạn sẽ không thể xem các file và thư mục trong thư mục /root. Tuy nhiên bạn vẫn có thể thể liệt kê các thành phần trong thư mục này bằng lệnh su với tùy chọn -c mà không cần chuyển đổi thành người dùng root.

Lúc này, bạn cần thực hiện như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

sudo su -c 'ls /root' root

Lưu ý: Lệnh sudo trường hợp này sẽ sử dụng để cấp quyền quản trị tạm thời, giúp người dùng có thể thực thi lệnh su với quyền root.

Kết quả: Sau khi thực hiện lệnh, bạn có thể truy cập vào thư mục root mặc dù không chuyển sang người dùng có quyền truy cập root, tương tự như hình dưới:

Thực hiện lệnh su dưới quyền người dùng khác
Thực hiện lệnh su dưới quyền người dùng khác

Ví dụ 5: Làm việc cùng người dùng khác ngay trên môi trường hiện tại

Bạn có thể sử dụng lệnh su với tùy chọn -p để chuyển sang làm việc với một người dùng khác mà không cần thay đổi môi trường làm việc hiện tại. Giả sử, hiện tại bạn cần chuyển sang tài khoản người dùng rick nhưng vẫn ở lại môi trường hiện tại.

Các bước thực hiện cụ thể như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

su -p rick

Kết quả: Sau khi chạy lệnh, bạn sẽ chuyển sang làm việc dưới quyền người dùng rick, tuy nhiên mọi thứ trong môi trường làm việc của bạn sẽ vẫn được giữ nguyên như trước.

Làm việc với người dùng khác ngay trên môi trường hiện tại
Làm việc với người dùng khác ngay trên môi trường hiện tại

Lưu ý: Người dùng sẽ chuyển sang rick, tuy nhiên môi trường shell sẽ được giữ nguyên, và quá trình này sẽ mở ra tại thư mục /home/susmit. Nếu không có tùy chọn -p, quá trình sẽ mở tại thư mục /home/rick. Thao tác này sẽ giữ nguyên các biến môi trường.

Ví dụ 6: Thay đổi sang một shell khác bằng lệnh su trong Linux

Để chuyển sang một môi trường làm việc khác trên hệ thống Linux, bạn có thể sử dụng lệnh su kèm theo tùy chọn -s. Trong ví dụ này, bạn sẽ chuyển từ tài khoản người dùng susmit sang tài khoản root và mở thêm một shell mới là /bin/sh.

Các bước thực hiện cụ thể như sau:

Bước 1: Mở cửa sổ terminal trên Ubuntu.

Bước 2: Gõ lệnh sau vào command prompt và nhấn phím Enter:

sudo su -s /bin/sh

Kết quả: Sau khi thực hiện lệnh, bạn sẽ được chuyển sang shell mới là /bin/sh với tài khoản người dùng root.

Thay đổi sang một shell khác bằng lệnh su trong Linux
Thay đổi sang một shell khác bằng lệnh su trong Linux

Sự khác biệt giữa lệnh su và sudo trong Linux

Trong hệ điều hành Linux, lệnh sudo và su đều cho phép bạn thực hiện các tác vụ với quyền hạn cao hơn, nhưng cả 2 đều có những điểm khác nhau.

Sự khác biệt giữa lệnh su và sudo trong Linux
Sự khác biệt giữa lệnh su và sudo trong Linux

Lưu ý:

  • Lệnh su: Cho phép bạn chuyển đổi hoàn toàn sang một người dùng khác trên hệ thống, bao gồm cả người dùng root. Khi sử dụng lệnh, bạn sẽ làm việc với tất cả các quyền hạn của người dùng đó cho đến khi đăng xuất
  • Lệnh sudo: Cho bạn quyền truy cập root (quyền quản trị lớn nhất) tạm thời để thực hiện một lệnh cụ thể. Sau khi lệnh hoàn thành, bạn sẽ trở lại quyền người dùng thông thường của mình. Để sử dụng lệnh, tài khoản của bạn cần được thêm vào nhóm sudo

So sánh giữa lệnh su và sudo
So sánh giữa lệnh su và sudo

Như hình minh hoạ, ban đầu lệnh su thực hiện tác vụ thất bại vì không có quyền truy cập admin. Tuy nhiên sau đó, lệnh sudo đã cấp quyền quản trị cho lệnh su để có thể hoàn thành tác vụ này. 

Câu hỏi thường gặp

Tại sao lệnh su lại yêu cầu mật khẩu khi chuyển đổi sang người dùng khác?

Lệnh su yêu cầu mật khẩu khi chuyển đổi sang người dùng khác vì lý do bảo mật: bảo vệ tài khoản người dùng, ngăn chặn truy cập trái phép và đảm bảo tính toàn vẹn của hệ thống.

Sự khác biệt giữa lệnh su – và su -l là gì?

Cả 2 đều chuyển đổi người dùng
su -l: liệt kê các nhóm mà người dùng đích thuộc về
su – : khởi động một shell mới với các biến môi trường và cài đặt của người dùng mới

Có thể sử dụng lệnh su để chuyển đổi giữa các người dùng mà không cần nhập mật khẩu không?

Câu trả lời là không. Vì thông thường lệnh su yêu cầu bạn nhập mật khẩu của người dùng đích để đảm bảo an toàn để đảm bảo tính bảo mật.

Lời kết

Bài viết này đã hướng dẫn bạn cách sử dụng lệnh su để chuyển đổi giữa các tài khoản người dùng khác nhau trên hệ thống Linux. Hy vọng rằng với những ví dụ thực tế được cung cấp, bạn có thể nắm vững cách thao tác và làm chủ lệnh su trong Linux.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG